std::experimental::any_cast
Von cppreference.com
< cpp | experimental | any
| template<class ValueType> ValueType any_cast(const any& operand); |
(1) | (library fundamentals TS) |
| template<class ValueType> ValueType any_cast(any& operand); |
(2) | (library fundamentals TS) |
| template<class ValueType> ValueType any_cast(any&& operand); |
(3) | (library fundamentals TS) |
| template<class ValueType> const ValueType* any_cast(const any* operand) noexcept; |
(4) | (library fundamentals TS) |
| template<class ValueType> ValueType* any_cast(any* operand) noexcept; |
(5) | (library fundamentals TS) |
Führt typsicheren Zugriff auf das enthaltene Objekt durch.
Für (1-3) ist das Programm ill-formed, wenn ValueType keine Referenz ist und std::is_copy_constructible<ValueType>::value false ist.
[bearbeiten] Parameter
| operand | - | Ziel-any-Objekt |
[bearbeiten] Rückgabewert
1) Gibt *any_cast<std::add_const_t<std::remove_reference_t<ValueType>>>(&operand) zurück.
2,3) Gibt *any_cast<std::remove_reference_t<ValueType>>(&operand) zurück.
4,5) Wenn operand kein Nullzeiger ist und der
typeid des angeforderten ValueType mit dem des Inhalts von operand übereinstimmt, ein Zeiger auf den von operand enthaltenen Wert, andernfalls ein Nullzeiger.[bearbeiten] Ausnahmen
1-3) Wirft
bad_any_cast, wenn der typeid des angeforderten ValueType nicht mit dem des Inhalts von operand übereinstimmt.