CETL 0.0.0
 
Loading...
Searching...
No Matches
cetlpf.hpp File Reference
Include dependency graph for cetlpf.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  cetl::in_place_t
 
struct  cetl::in_place_type_t< T >
 
struct  cetl::in_place_index_t< I >
 
class  cetl::optional< T >
 
struct  cetl::nullopt_t
 
class  cetl::bad_optional_access
 
struct  cetl::is_swappable< T >
 
struct  cetl::is_nothrow_swappable< T >
 
struct  cetl::conjunction<... >
 
struct  cetl::disjunction<... >
 
struct  cetl::negation< T >
 
class  cetl::variant< Ts >
 
struct  cetl::monostate
 
struct  cetl::variant_size< typename >
 
struct  cetl::variant_alternative< size_t, typename >
 
class  cetl::bad_variant_access
 
class  cetl::basic_string_view< CharT, Traits >
 

Namespaces

namespace  cetl::pf17
 
namespace  cetl::pf17::pmr
 
namespace  cetl::pf17::pmr::deviant
 
namespace  cetl
 
namespace  cetl::pmr
 

Typedefs

using cetl::byte = cetl::pf17::byte
 
using cetl::pmr::memory_resource = cetl::pf17::pmr::memory_resource
 
template<typename T>
using cetl::pmr::polymorphic_allocator = cetl::pf17::pmr::polymorphic_allocator<T>
 
using cetl::pmr::monotonic_buffer_resource = cetl::pf17::pmr::monotonic_buffer_resource
 
template<typename...>
using cetl::void_t
 
template<size_t N, typename V>
using cetl::variant_alternative_t
 
using cetl::string_view
 

Functions

memory_resourcecetl::pmr::null_memory_resource () noexcept
 
memory_resourcecetl::pmr::new_delete_resource () noexcept
 
memory_resourcecetl::pmr::get_default_resource () noexcept
 
memory_resourcecetl::pmr::set_default_resource (memory_resource *mr) noexcept
 
template<typename T>
constexpr optional< std::decay_t< T > > cetl::make_optional (T &&value)
 
template<std::size_t Ix, typename... Ts>
CETL_NODISCARD constexpr variant_alternative_t< Ix, variant< Ts... > > & cetl::get (variant< Ts... > &var)
 
template<std::size_t Ix, typename... Ts>
CETL_NODISCARD constexpr std::add_pointer_t< variant_alternative_t< Ix, variant< Ts... > > > cetl::get_if (variant< Ts... > *const var) noexcept
 
template<typename Fun, typename... Vs>
constexpr decltype(auto) cetl::visit (Fun &&fun, Vs &&... vars)
 
template<typename T, typename... Ts>
CETL_NODISCARD constexpr bool cetl::holds_alternative (const variant< Ts... > &var) noexcept
 

Variables

constexpr in_place_t cetl::in_place
 
template<typename T>
constexpr in_place_type_t< T > cetl::in_place_type
 
template<std::size_t I>
constexpr in_place_index_t< I > cetl::in_place_index
 
constexpr nullopt_t cetl::nullopt
 
template<typename T>
constexpr bool cetl::is_swappable_v
 
template<typename T>
constexpr bool cetl::is_nothrow_swappable_v
 
template<typename... Ts>
constexpr bool cetl::conjunction_v
 
template<typename... Ts>
constexpr bool cetl::disjunction_v
 
template<typename T>
constexpr bool cetl::negation_v
 
template<typename V>
constexpr size_t cetl::variant_size_v
 
constexpr std::size_t cetl::variant_npos
 

Detailed Description

CETL polyfill header for C++17 types.

Warning
This header violates AUTOSAR-14 M7-3-6, A17-0-1, and A16-0-1 (and possibly other rules). Don't use CETL polyfill headers in AUTOSAR code.
polyfill headers cannot be used if CETL_H_ERASE is defined.

CETL polyfill headers will provide the CETL type as an aliased standard type in the std namespace when compiling using older C++ libraries and will automatically provide types from the standard library when compiling using newer C++ libraries. This allows for causal use of CETL as a true polyfill library but does violate certain coding standards. As such, for more critical software we recommend not using these headers but including the types you use from cetl::pf17 directly.

For example, (TODO: polyfill 17 examples.)