| 
    KiCad PCB EDA Suite
    
   | 
 
An implementation of std::any_cast, which uses type_info::hash_code to check validity of cast types. More...
#include <initializer_list>#include <new>#include <typeinfo>#include <utility>Go to the source code of this file.
Classes | |
| class | ki::bad_any_cast | 
Exception class thrown by a failed any_cast.  More... | |
| class | ki::any | 
| A type-safe container of any type.  More... | |
| union | ki::any::Storage | 
| union | ki::any::Arg | 
| struct | ki::any::Manager_Internal< T > | 
| struct | ki::any::Manager_External< T > | 
Namespaces | |
| namespace | ki | 
Functions | |
| void | ki::swap (any &x, any &y) noexcept | 
Exchange the states of two any objects.   | |
| template<typename T, typename... Args> | |
| std::enable_if_t< std::is_constructible_v< any, std::in_place_type_t< T >, Args... >, any > | ki::make_any (Args &&... args) | 
Create a any holding a T constructed from args....   | |
| template<typename T, typename U, typename... Args> | |
| std::enable_if_t< std::is_constructible_v< any, std::in_place_type_t< T >, std::initializer_list< U > &, Args... >, any > | ki::make_any (std::initializer_list< U > il, Args &&... args) | 
Create an any holding a T constructed from il and args....   | |
| template<typename ValueType> | |
| ValueType | ki::any_cast (const any &any) | 
| Access the contained object.   | |
| template<typename ValueType> | |
| ValueType | ki::any_cast (any &any) | 
| Access the contained object.   | |
| template<typename ValueType> | |
| ValueType | ki::any_cast (any &&any) | 
| template<typename ValueType> | |
| const ValueType * | ki::any_cast (const any *any) noexcept | 
| Access the contained object.   | |
| template<typename ValueType> | |
| ValueType * | ki::any_cast (any *any) noexcept | 
Variables | |
| template<typename> | |
| constexpr bool | ki::is_in_place_type_v = false | 
| template<typename T> | |
| constexpr bool | ki::is_in_place_type_v< std::in_place_type_t< T > > = true | 
An implementation of std::any_cast, which uses type_info::hash_code to check validity of cast types.
This is required as Clang compares types as being equivalent based on their type_info pointer locations. These are not guaranteed to be the same with identical types linked in multiple targets from shared libraries. The current Clang implementation of type_info::hash_code is based on the type names, which should be consistent across translation units.
Definition in file ki_any.h.