Using std::any to store any value
C++ does not have a hierarchical type system like other languages (such as C# or Java) and, therefore, it can't store multiple types of a value in a single variable like it is possible to with type
void* for that purpose, but this only helps us store pointers to anything and is not type-safe. Depending on the end goal, alternatives can include templates or overloaded functions. However, C++17 has introduced a standard type-safe container, called
std::any, that can hold a single value of any type.
std::any has been designed based on
boost::any and is available in the
<any> header. If you are familiar with
boost::any and have used it in your code, you can migrate it seamlessly to
How to do it...
Use the following operations to work with
- To store values, use the constructor or assign them directly to an...