The Boost Proto Library is a framework for building EmbeddedDomainSpecificLanguage''''''s in CeePlusPlus. It is one of the BoostLibraries. * http://www.boost.org/doc/libs/1_57_0/doc/html/proto.html '''Motivation''' ''Expression Templates are an advanced technique that C++ library developers use to define embedded mini-languages that target specific problem domains. The technique has been used to create efficient and easy-to-use libraries for linear algebra as well as to define C++ parser generators with a readable syntax. But developing such a library involves writing an inordinate amount of unreadable and unmaintainable template mumbo-jumbo. Boost.Proto eases the development of domain-specific embedded languages (EDSLs).'' * http://www.boost.org/doc/libs/1_57_0/doc/html/proto.html#boost_proto.preface.motivation ---- It is used in other boost libraries include the BoostPhoenixLibrary. Some of the examples make use of BoostXpressive to handle RegularExpression''''''s. ---- This is a very powerful library with lots of interesting features. It is also fairly difficult to learn without investing quite a lot of time in the effort. After a while the relationship of the various parts of the library becomes more natural. There are examples which develop several EmbeddedDomainSpecificLanguage''''''s (EDSL), including a reimplementation of BoostLambdaLibrary using BoostProtoLibrary. One feature is the ability to combine different EDSLs either one as a subdomain of the other or else to make one a subdomain of the global domain, i.e. anything. -- JohnFletcher ---- See also CppTemplateMetaprogramming. ---- CategoryBoost CategoryCpp CategoryCppTemplates