Boost C++ 库

“...世界上最受尊敬和设计最精良的C++库项目之一。” Herb SutterAndrei Alexandrescu, C++ 编码规范

PrevUpHomeNext

Boost.Any 参考章节

头文件 <boost/any.hpp>
头文件 <boost/any/bad_any_cast.hpp>
头文件 <boost/any/basic_any.hpp>
头文件 <boost/any/fwd.hpp>
头文件 <boost/any/unique_any.hpp>

头文件 <boost/any.hpp>

一个类,其实例可以保存满足 ValueType 要求的任何类型的实例。

namespace boost {
  class any;
  void swap(any &, any &);
  template<typename ValueType> ValueType * any_cast(any *);
  template<typename ValueType> const ValueType * any_cast(const any *);
  template<typename ValueType> ValueType any_cast(any &);
  template<typename ValueType> ValueType any_cast(const any &);
  template<typename ValueType> ValueType any_cast(any &&);
}
namespace boost {
  class bad_any_cast;
}

一个具有可定制的小对象优化功能的类,其实例可以保存满足 ValueType 要求的任何类型的实例。 如果不确定,请使用 boost::any

namespace boost {
  namespace anys {
    template<std::size_t OptimizeForSize, std::size_t OptimizeForAlignment> 
      class basic_any;
    template<std::size_t OptimizeForSize, std::size_t OptimizeForAlignment> 
      void swap(basic_any< OptimizeForSize, OptimizeForAlignment > &, 
                basic_any< OptimizeForSize, OptimizeForAlignment > &);
    template<typename ValueType, std::size_t Size, std::size_t Alignment> 
      ValueType * any_cast(basic_any< Size, Alignment > *);
    template<typename ValueType, std::size_t OptimizeForSize, 
             std::size_t OptimizeForAlignment> 
      const ValueType * 
      any_cast(const basic_any< OptimizeForSize, OptimizeForAlignment > *);
    template<typename ValueType, std::size_t OptimizeForSize, 
             std::size_t OptimizeForAlignment> 
      ValueType any_cast(basic_any< OptimizeForSize, OptimizeForAlignment > &);
    template<typename ValueType, std::size_t OptimizeForSize, 
             std::size_t OptimizeForAlignment> 
      ValueType any_cast(const basic_any< OptimizeForSize, OptimizeForAlignment > &);
    template<typename ValueType, std::size_t OptimizeForSize, 
             std::size_t OptimizeForAlignment> 
      ValueType any_cast(basic_any< OptimizeForSize, OptimizeForAlignment > &&);
  }
}

头文件 <boost/any/fwd.hpp>

Boost.Any 库类型的前向声明。

一个类,其实例可以保存任何类型的实例(包括不可复制和不可移动的类型)。

namespace boost {
  namespace anys {
    template<typename T> struct in_place_type_t;

    class unique_any;

    in_place_type_t< T > in_place_type;
    void swap(unique_any &, unique_any &);
    template<typename T> T * any_cast(unique_any *);
    template<typename T> const T * any_cast(const unique_any *);
    template<typename T> T any_cast(unique_any &);
    template<typename T> T any_cast(const unique_any &);
    template<typename T> T any_cast(unique_any &&);
  }
}

PrevUpHomeNext