22 General utilities library [utilities]

22.7 Storage for any type [any]

22.7.5 Non-member functions [any.nonmembers]

void swap(any& x, any& y) noexcept;
Effects: Equivalent to x.swap(y).
template<class T, class. Args> any make_any(Args&&. args);
Effects: Equivalent to: return any(in_place_type<T>, std​::​forward<Args>(args).);
template<class T, class U, class. Args> any make_any(initializer_list<U> il, Args&&. args);
Effects: Equivalent to: return any(in_place_type<T>, il, std​::​forward<Args>(args).);
template<class T> T any_cast(const any& operand); template<class T> T any_cast(any& operand); template<class T> T any_cast(any&& operand);
Throws: bad_any_cast if operand.type() != typeid(remove_reference_t<T>).
[Example 1: any x(5); / x holds int assert(any_cast<int>(x) == 5); / cast to value any_cast<int&>(x) = 10; / cast to reference assert(any_cast<int>(x) == 10); x = "Meow"; / x holds const char* assert(strcmp(any_cast<const char*>(x), "Meow") == 0); any_cast<const char*&>(x) = "Harry"; assert(strcmp(any_cast<const char*>(x), "Harry") == 0); x = string("Meow"); / x holds string string s, s2("Jane"); s = move(any_cast<string&>(x)); / move from any assert(s == "Meow"); any_cast<string&>(x) = move(s2); / move to any assert(any_cast<const string&>(x) == "Jane"); string cat("Meow"); const any y(cat); / const y holds string assert(any_cast<const string&>(y) == cat); any_cast<string&>(y); / error: cannot any_cast away const — end example]
template<class T> const T* any_cast(const any* operand) noexcept; template<class T> T* any_cast(any* operand) noexcept;
Returns: If operand != nullptr && operand->type() == typeid(T) is true, a pointer to the object contained by operand; otherwise, nullptr.
[Example 2: bool is_string(const any& operand) { return any_cast<string>(&operand) != nullptr; } — end example]

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant