FreeBSD Manual Pages
std::any(3) C++ Standard Libary std::any(3) NAME std::any - std::any Synopsis Defined in header <any> class any; (since C++17) The class any describes a type-safe container for single values of any copy constructible type. 1) An object of class any stores an instance of any type that satis- fies the constructor requirements or is empty, and this is referred to as the state of the class any object. The stored instance is called the contained ob- ject. Two states are equivalent if they are either both empty or if both are not empty and if the contained objects are equivalent. 2) The non-member any_cast functions provide type-safe access to the contained object. Implementations are encouraged to avoid dynamic allocations for small objects, but such an optimization may only be applied to types for which std::is_nothrow_move_constructible returns true. Member functions constructor constructs an any object (public member function) operator= assigns an any object (public member function) destructor destroys an any object (public member function) Modifiers emplace change the contained object, constructing the new ob- ject directly (public member function) reset destroys contained object (public member function) swap swaps two any objects (public member function) Observers has_value checks if object holds a value (public member function) type returns the typeid of the contained value (public member function) Non-member functions std::swap(std::any) specializes the std::swap algorithm (C++17) (function) any_cast type-safe access to the contained object (C++17) (function template) make_any creates an any object (C++17) (function template) Helper classes bad_any_cast exception thrown by the value-returning forms of any_cast on a type (C++17) mismatch (class) Notes Feature-test macro: __cpp_lib_any Example // Run this code #include <any> #include <iostream> int main() { std::cout << std::boolalpha; // any type std::any a = 1; std::cout << a.type().name() << ": " << std::any_cast<int>(a) << '\n'; a = 3.14; std::cout << a.type().name() << ": " << std::any_cast<double>(a) << '\n'; a = true; std::cout << a.type().name() << ": " << std::any_cast<bool>(a) << '\n'; // bad cast try { a = 1; std::cout << std::any_cast<float>(a) << '\n'; } catch (const std::bad_any_cast& e) { std::cout << e.what() << '\n'; } // has value a = 2; if (a.has_value()) { std::cout << a.type().name() << ": " << std::any_cast<int>(a) << '\n'; } // reset a.reset(); if (!a.has_value()) { std::cout << "no value\n"; } // pointer to contained data a = 3; int* i = std::any_cast<int>(&a); std::cout << *i << "\n"; } Possible output: int: 1 double: 3.14 bool: true bad any_cast int: 2 no value 3 See also function wraps callable object of any copy constructible type with (C++11) specified function call signature (class template) move_only_function wraps callable object of any type with specified function call (C++23) signature (class template) variant a type-safe discriminated union (C++17) (class template) optional a wrapper that may or may not hold an object (C++17) (class template) http://cppreference.com 2022.07.31 std::any(3)
NAME | Synopsis | Member functions | Modifiers | Observers | Non-member functions | Helper classes | Notes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::any&sektion=3&manpath=FreeBSD+Ports+15.0>
