iceoryx2
C++ Language Bindings
Loading...
Searching...
No Matches
variant.hpp File Reference
#include "iox2/legacy/detail/platform_correction.hpp"
#include "iox2/legacy/detail/variant_internal.hpp"
#include <algorithm>
#include <cstdint>
#include <iostream>
#include <limits>
#include <type_traits>
#include "iox2/legacy/detail/variant.inl"

Go to the source code of this file.

Classes

struct  iox2::legacy::in_place_index< N >
 helper struct to perform an emplacement at a predefined index in the constructor of a variant More...
 
struct  iox2::legacy::in_place_type< T >
 helper struct to perform an emplacement of a predefined type in in the constructor of a variant More...
 
class  iox2::legacy::variant< Types >
 Variant implementation from the C++17 standard with C++11. The interface is inspired by the C++17 standard but it has changes in get and emplace since we are not allowed to throw exceptions. More...
 

Namespaces

namespace  iox2
 
namespace  iox2::legacy
 

Functions

template<typename T , typename... Types>
constexpr bool iox2::legacy::holds_alternative (const variant< Types... > &variant) noexcept
 returns true if the variant holds a given type T, otherwise false
 
template<typename... Types>
constexpr bool iox2::legacy::operator== (const variant< Types... > &lhs, const variant< Types... > &rhs) noexcept
 equality check for two distinct variant types
 
template<typename... Types>
constexpr bool iox2::legacy::operator!= (const variant< Types... > &lhs, const variant< Types... > &rhs) noexcept
 inequality check for two distinct variant types
 

Variables

static constexpr uint64_t iox2::legacy::INVALID_VARIANT_INDEX { std::numeric_limits<uint64_t>::max() }
 value which an invalid variant index occupies