Namensräume
Varianten
Aktionen

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.