# Standard library header <any>

From cppreference.com
< cpp‎ | header

This header is part of the general utility library.

### Classes

Name | Description
any (C++17) | Objects that hold instances of any CopyConstructible type. (class)
bad_any_cast (C++17) | exception thrown by the value-returning forms of `any_cast` on a type mismatch (class)

### Functions

std::swap(std::any) (C++17) | specializes the std::swap algorithm (function)
any_cast (C++17) | type-safe access to the contained object (function template)

### Synopsis

    namespace std {
      // class bad_any_cast
      class bad_any_cast;
      // class any
      class any;
      // non-member functions
      void swap(any& x, any& y) noexcept;
      template <class T, class... Args>
      any make_any(Args&& ...args);
      template <class T, class U, class... Args>
      any make_any(initializer_list<U> il, Args&& ...args);
      template<class ValueType>
      ValueType any_cast(const any& operand);
      template<class ValueType>
      ValueType any_cast(any& operand);
      template<class ValueType>
      ValueType any_cast(any&& operand);
      template<class ValueType>
      const ValueType* any_cast(const any* operand) noexcept;
      template<class ValueType>
      ValueType* any_cast(any* operand) noexcept;
    }

#### Class std::bad_any_cast

    class bad_any_cast : public bad_cast {
    public:
      const char* what() const noexcept override;
    };

#### Class std::any

    class any {
    public:
      // construction and destruction
      constexpr any() noexcept;
      any(const any& other);
      any(any&& other) noexcept;
      template <class ValueType> any(ValueType&& value);
      template <class ValueType, class... Args>
      explicit any(in_place_type_t<ValueType>, Args&&...);
      template <class ValueType, class U, class... Args>
      explicit any(in_place_type_t<ValueType>, initializer_list<U>, Args&&...);
      ~any();
      // assignments
      any& operator=(const any& rhs);
      any& operator=(any&& rhs) noexcept;
      template <class ValueType> any& operator=(ValueType&& rhs);
      // modifiers
      template <class ValueType, class... Args>
      void emplace(Args&& ...);
      template <class ValueType, class U, class... Args>
      void emplace(initializer_list<U>, Args&&...);
      void reset() noexcept;
      void swap(any& rhs) noexcept;
      // observers
      bool has_value() const noexcept;
      const type_info& type() const noexcept;
    };

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/header/any&oldid=105111"