Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
C++ Templates
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ in Depth Series)
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Evolving a language in and for the real world: C++ 1991-2006
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Simple and safe SQL queries with c++ templates
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Domain-specific language integration with compile-time parser generator library
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Using functional languages to facilitate C++ metaprogramming
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
Hi-index | 0.00 |
More and more C++ applications use template metaprograms directly or indirectly by using libraries based on them. Since C++ template metaprograms follow the functional paradigm, the well known and widely used tools of functional programming should be available for developers of C++ template metaprograms as well. Many functional languages support let expressions to bind expressions to names locally. It simplifies the source code, reduces duplications and avoids the pollution of the namespace or namespaces. In this paper we present how let expressions can be introduced in C++ template metaprograms. We also show how let expressions can be used to implement lambda expressions. The Boost Metaprogramming Library provides lambda expressions for template metaprograms, we show their limitations with nested lambda expressions and how our implementation can handle those cases as well.