
On Sun, 23 Mar 2008 23:07:57 -0700 Eric Niebler <eric@boost-consulting.com> wrote:
Tom Brinkman wrote:
Now that I think about it some more, there's really nothing stopping us from taking this much farther -- access individual characters, calculate the length, slice and substr, even search and replace. There's no reason why ctstring<> can't implement most of the std::string interface at compile time.
This would be great showcase of the advanced work being done by boost developers. This would have a "high" wow factor.
I bet, the vast horde of "old-style" c++ developers what immediately step up and take notice.
I fleshed out the compile-time string class, and called it mpl::string. (See attached.) It is a Front and Back Extensible, Random-Access MPL Sequence. The primary use is as follows:
template<char const *sz> // template on a string struct foo { void bar() { std::printf("%s\n", sz); } };
foo< mpl::string<'hell','o wo','rld!'>::c_str > f; f.bar(); // prints "hello world!"
Is there interest in adding this to the MPL?
Yes please. Was looking at working your earlier post into something more elaborate ... but oh well - though have only skimmed over your present post. P.S. I presume you'd wrap the mpl_max_string_length around some ifdef for a user compile-time defined value. Please, let's get this into the mpl. Cheers, -- Manfred 24 March, 2008