Modern C++ design: generic programming and design patterns applied
Modern C++ design: generic programming and design patterns applied
Tuple types and multiple return values
C/C++ Users Journal
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
Template meta-programming for Haskell
ACM SIGPLAN Notices
Mixin-Based Programming in C++
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
The Lambda library: unnamed functions in C++
Software—Practice & Experience
Journal of Functional Programming
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
TypeCase: a design pattern for type-indexed functions
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Evolving a language in and for the real world: C++ 1991-2006
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Teaching template classes with all the advantages
Journal of Computing Sciences in Colleges
Proceedings of the 2008 ACM symposium on Applied computing
Issues in the instantiation of template classes
ACM SIGCSE Bulletin
Practical Variable-Arity Polymorphism
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
C++ lambda expressions and closures
Science of Computer Programming
Domain-specific language integration with compile-time parser generator library
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
A generic lazy evaluation scheme for exact geometric computations
Science of Computer Programming
Functional Extensions to the Boost Metaprogram Library
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Generic functions and classes accepting a variable number of type arguments have proven to be a very useful, but missing, feature of C++. Numerous foundational libraries rely on clever template and preprocessor tricks to emulate such variadic templates. By several measures these emulations are inadequate. This paper describes how C++ can be extended with variadic templates, significantly improving existing implementations of widely used C++ libraries in terms of code size, quality of error diagnostics, compilation speed, and generality. Furthermore, variadic templates enable new applications, such as type-safe implementations of functions like printf, and improved support for generic mixin classes. We have implemented variadic templates as an extension of a production quality C++ compiler.