Function any_cast
boost::type_erasure::any_cast
Synopsis
template<typename T, typename Concept, typename Tag>
T any_cast(any< Concept, Tag > & arg);
template<typename T, typename Concept, typename Tag>
T any_cast(const any< Concept, Tag > & arg);
template<typename T, typename Concept, typename Tag>
T any_cast(any< Concept, Tag > * arg);
template<typename T, typename Concept, typename Tag>
T any_cast(const any< Concept, Tag > * arg);
Description
Попытки извлечь объект, который держит<arg>. В случае, если не удается выполнить задание,<any_cast>возвращает нулевой указатель. Кастинг на<void*>всегда успевает и возвращает адрес хранимого объекта.
any<mpl::vector<typeid_<>, copy_constructible<> > > x(1);
any_cast<int>(x);
any_cast<int&>(x);
any_cast<double>(x);
any_cast<int*>(&x);
any_cast<void*>(&x);
any_cast<double*>(&x);
Требуется: |
Если<arg>является указателем,<T>должен быть указателем типа. <Concept>должен содержать typeid_<>. |
Броски: |
bad_any_cast, если<arg>не содержит объект типа<T>и мы отбрасываем на значение или ссылку. |