GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::any(3) C++ Standard Libary std::any(3)

std::any - std::any


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 satisfies 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 object. 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.


constructor constructs an any object
(public member function)
operator= assigns an any object
(public member function)
destructor destroys an any object
(public member function)


emplace change the contained object, constructing the new object directly
(public member function)
reset destroys contained object
(public member function)
swap swaps two any objects
(public member function)


has_value checks if object holds a value
(public member function)
type returns the typeid of the contained value
(public member function)


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)


bad_any_cast exception thrown by the value-returning forms of any_cast on a type
(C++17) mismatch
(class)


Feature-test macro: __cpp_lib_any

// 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";
}


int: 1
double: 3.14
bool: true
bad any_cast
int: 2
no value
3


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)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.