This example demonstrates how to construct and use std::any
in C++. The std::any
type is a type-safe container for single values of any type, allowing for greater flexibility in handling different data types.
std::any, C++, type-safe container, flexible data types, C++17, example
#include <iostream>
#include <any>
#include <string>
int main() {
// Create std::any variable
std::any value;
// Assign an integer
value = 42;
// Retrieve and output the integer
std::cout << std::any_cast<int>(value) << std::endl;
// Assign a string
value = std::string("Hello, std::any!");
// Retrieve and output the string
std::cout << std::any_cast<std::string>(value) << std::endl;
// Checking type and handling exceptions
try {
std::cout << std::any_cast<double>(value) << std::endl; // This will throw an exception
} catch (const std::bad_any_cast& e) {
std::cout << "Bad any cast: " << e.what() << std::endl;
}
return 0;
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?