Share This Author
Concepts: linguistic support for generic programming in C++
- Douglas P. Gregor, Jaakko Järvi, Jeremy G. Siek, B. Stroustrup, G. D. Reis, A. Lumsdaine
- Computer ScienceOOPSLA '06
- 16 October 2006
To improve the support for generic programming in C++, concepts are introduced to express the syntactic and semantic behavior of types and to constrain the type parameters in a C++ template to make templates easier to use and easier to compile.
Specifying C++ concepts
This paper exposes a few weakness of the current specification of the C++ standard library and suggests a far more precise and complete specification and presents a systematic way of translating proposed concept definitions, based on use-patterns rather than function signatures, into constraint sets that can serve as convenient basis for concept checking in a compiler.
Concepts – Design choices for template argument checking
This note presents problems, ideals, and design ideas for ways of checking template arguments. The aim is to simplify the writing and use of templates without loss of run-time performance or…
An environment for Symbolic and Numeric Computation
The design choices of the kernel and their impact on the development of generic and efficient codes for the treatment of algebraic objects, such as vectors, matrices, univariate and multivariate polynomials are explained.
Open pattern matching for C++
This work presents functional-style pattern matching for C++ implemented as a library, called Mach7, that can be stored in variables, passed among functions, and allow the use of open class hierarchies.
A Principled, Complete, and Efficient Representation of C++
How general type-based unification is key to minimal compact representation, fast type-safe traversal, and scalability in C++ is described.
Supporting SELL for High-Performance Computing
The notion of Semantically Enhanced Library Languages, SELL, as a practical and economical alternative to special-purpose programming languages for high-performance computing is introduced and the Pivot infrastructure for program analysis and transformation is described.
A mechanized semantics for C++ object construction and destruction, with applications to resource management
This paper is the first to present a formal mechanized account of the metatheory of construction and destruction in C++, and applications to popular programming techniques such as "resource acquisition is initialization".
Open and efficient type switch for C++
This work implements a type switch construct as an ISO C++11 library, called Mach7, which provides concise notation and outperforms the visitor design pattern, commonly used for case analysis on types in object-oriented programming.
A Module System for C + + ( Revision 4 )
This document focuses on programmer’s view of modules and how to better support modular programming in the large, componentization, scalable compilation, and semantics-aware developer tools.