|
IODA
|
Interfaces for ioda::Type and related classes. More...
#include <array>#include <cstring>#include <functional>#include <gsl/gsl-lite.hpp>#include <memory>#include <string>#include <typeindex>#include <typeinfo>#include <vector>#include "ioda/Types/Type_Provider.h"#include "ioda/Exception.h"#include "ioda/defs.h"

Go to the source code of this file.
Classes | |
| class | ioda::detail::Type_Base< Type_Implementation > |
| class | ioda::Type |
| Represents the "type" (i.e. integer, string, float) of a piece of data. More... | |
| class | ioda::detail::Type_Backend |
| struct | ioda::Types::is_string< T > |
| Convenience struct to determine if a type can represent a string. More... | |
| struct | ioda::Types::is_string< std::string > |
| Convenience struct to determine if a type can represent a string. More... | |
| struct | ioda::Types::GetType_Wrapper< DataType, Length > |
| Wrapper struct to call GetType. Needed because of C++ template rules. More... | |
Namespaces | |
| ioda | |
| ioda::detail | |
| ioda::Types | |
| Defines the type system used for manipulating IODA objects. | |
| ioda::Types::constants | |
| Useful compile-time definitions. | |
Macros | |
| #define | IODA_ADD_FUNDAMENTAL_TYPE(x) |
Typedefs | |
| typedef std::function< Type(gsl::not_null< const ::ioda::detail::Type_Provider * >)> | ioda::Types::TypeWrapper_function |
Enumerations | |
| enum class | ioda::BasicTypes { ioda::undefined_ , ioda::float_ , ioda::double_ , ioda::ldouble_ , ioda::char_ , ioda::short_ , ioda::ushort_ , ioda::int_ , ioda::uint_ , ioda::lint_ , ioda::ulint_ , ioda::llint_ , ioda::ullint_ , ioda::int32_ , ioda::uint32_ , ioda::int16_ , ioda::uint16_ , ioda::int64_ , ioda::uint64_ , ioda::bool_ , ioda::str_ } |
Functions | |
| IODA_DL size_t | ioda::detail::COMPAT_strncpy_s (char *dest, size_t destSz, const char *src, size_t srcSz) |
| Safe char array copy. More... | |
| template<class DataType , int Array_Type_Dimensionality = 0> | |
| Type | ioda::Types::GetType (gsl::not_null< const ::ioda::detail::Type_Provider * > t, std::initializer_list< Dimensions_t > Adims={}, typename std::enable_if<!is_string< DataType >::value >::type *=0) |
| For fundamental, non-string types. More... | |
| template<class DataType , int String_Type_Length = constants::_Variable_Length> | |
| Type | ioda::Types::GetType (gsl::not_null< const ::ioda::detail::Type_Provider * > t, std::initializer_list< Dimensions_t >={}, typename std::enable_if< is_string< DataType >::value >::type *=0) |
| For fundamental string types. These are either constant or variable length arrays. Separate handling elsewhere. More... | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (bool) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (short int) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (unsigned short int) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (int) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (unsigned int) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (long int) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (unsigned long int) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (long long int) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (unsigned long long int) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (signed char) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (unsigned char) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (char) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (wchar_t) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (char16_t) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (char32_t) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (float) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (double) | |
| ioda::Types::IODA_ADD_FUNDAMENTAL_TYPE (long double) | |
Variables | |
| constexpr size_t | ioda::Types::constants::_Variable_Length = 0 |
Interfaces for ioda::Type and related classes.
Implements the type system.
Definition in file Type.h.