Search NASA⌕ Search

DOE OSTI · code-18643

Concepts and Meta-Programming Library

Abstract

CAMP provides a portable optimized implementation of template meta-programming primitives. All capabilities found within are available in other open source projects, including metal and mpl among others, but no other library we know of supports all compilers required by LLNL codes. CAMP serves as an efficient facility for writing portable compile-time operations in C++ codes. It was developed as part of the RAJA project to facilitate more complex compile-time introspection and better error message delivery to users, but has since proven useful in Umpire, CHAI and other pre-release LLNL software projects and is thus being re-factored to stand alone. The CAMP library uses portable C++ template mechanisms almost exclusively, with the exception of intrinsics provided for performance by some compilers such as clang and gee. There are no private or protected interfaces and no proprietary information included in the source. Any and all future versions will limit themselves to implementing commonly available and well known primitives for compile-time manipulation of types. A new public github repository will be created to host the code independent of its current location in the raja repository, likely at github.com/llnl/camp.

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Kunen, AdamJ., Killian, WilliamK., Beckingsale, DavidA., Scogland, ThomasR.. 2018-07-13. Concepts and Meta-Programming Library. https://doi.org/10.11578/dc.20180919.2

Cite the original work for its findings. Save a collection to share your selection of sources.