user394460
user394460

Reputation: 193

C++ Compile-Time string manipulation

I looked at boost's mpl::string, but there doesn't seem to be an easy way of converting string literals to the single-quotation-integer-based format of mpl::string. What I am trying to do is to generate at compile time an XML realization of some simple data structures using compile time strings. I am striving for having macros generate the structures themselves and insert a constant "meta" field inside them, containing said XML string.

Upvotes: 6

Views: 1989

Answers (2)

void-pointer
void-pointer

Reputation: 14827

Here is an article regarding the subject: http://akrzemi1.wordpress.com/2011/05/11/parsing-strings-at-compile-time-part-i/. The author implements a simple RPN arithmetic calculator that works during compile-time using user string literals and constexpr. I won't attempt to provide any more summary of the article here.

Upvotes: 0

Diego Sevilla
Diego Sevilla

Reputation: 29011

The short answer is no, there is no easy way. At least not using C++ alone, and at compile time. You can use scripts or some other code generator to produce mpl::strings with the correct literals. C++0x will bring user defined literals [1], that allow an easy manipulation of literals, character by character, for example, using variadic templates.

  1. http://en.wikipedia.org/wiki/C%2B%2B0x#User-defined_literals

Upvotes: 3

Related Questions