template<typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
modbus::internal::base_metadata_t class

Template parameters
T metadata type

Base metadata

Public types

template<T Value>
using constant = std::integral_constant<T, Value>

Public static functions

static auto validate(T value) -> bool constexpr noexcept

Constructors, destructors, conversion operators

template<T Value>
base_metadata_t(constant<Value>) explicit constexpr noexcept
base_metadata_t(T value = 0, bool do_validation = false) explicit constexpr

Public functions

auto ref() -> T& noexcept
void set(T value) noexcept
void operator()(T value) noexcept
auto get() const -> T constexpr noexcept
auto operator()() const -> T constexpr noexcept
auto operator==(const base_metadata_t& other) const -> bool noexcept
auto operator<(const base_metadata_t& other) const -> bool noexcept
auto operator<=(const base_metadata_t& other) const -> bool noexcept
auto operator>(const base_metadata_t& other) const -> bool noexcept
auto operator>=(const base_metadata_t& other) const -> bool noexcept
auto operator!=(const base_metadata_t& other) const -> bool noexcept
auto operator-(const base_metadata_t& other) const -> base_metadata_t noexcept
auto operator+(const base_metadata_t& other) const -> base_metadata_t noexcept
auto operator++() -> base_metadata_t& noexcept
auto operator--() -> base_metadata_t& noexcept
auto validate() -> bool noexcept

Friends

template<typename ostream>
auto operator<<(ostream& os, const base_metadata_t& obj) -> ostream&

Function documentation

template<typename T, typename _2>
static bool modbus::internal::base_metadata_t<T, _2>::validate(T value) constexpr noexcept

Parameters
value value to test
Returns true if pass the test

Validate value

template<typename T, typename _2> template<T Value>
modbus::internal::base_metadata_t<T, _2>::base_metadata_t(constant<Value>) explicit constexpr noexcept

base_metadata constructor

template<typename T, typename _2>
modbus::internal::base_metadata_t<T, _2>::base_metadata_t(T value = 0, bool do_validation = false) explicit constexpr

Parameters
value value to set
do_validation

base_metadata constructor

template<typename T, typename _2>
T& modbus::internal::base_metadata_t<T, _2>::ref() noexcept

Get reference of value

template<typename T, typename _2>
void modbus::internal::base_metadata_t<T, _2>::set(T value) noexcept

Parameters
value value to set

Set value

template<typename T, typename _2>
void modbus::internal::base_metadata_t<T, _2>::operator()(T value) noexcept

Parameters
value value to set

Set value [operator()]

template<typename T, typename _2>
T modbus::internal::base_metadata_t<T, _2>::get() const constexpr noexcept

Returns value

Get value

template<typename T, typename _2>
T modbus::internal::base_metadata_t<T, _2>::operator()() const constexpr noexcept

Returns value

Get value [operator()]

template<typename T, typename _2>
bool modbus::internal::base_metadata_t<T, _2>::operator==(const base_metadata_t& other) const noexcept

Parameters
other other metadata
Returns true if value is equal with other

Equality check

template<typename T, typename _2>
bool modbus::internal::base_metadata_t<T, _2>::operator<(const base_metadata_t& other) const noexcept

Returns true if value is less than with other

Less than check

template<typename T, typename _2>
bool modbus::internal::base_metadata_t<T, _2>::operator<=(const base_metadata_t& other) const noexcept

Parameters
other other metadata
Returns true if value is less than equal with other

Less than equal check

template<typename T, typename _2>
bool modbus::internal::base_metadata_t<T, _2>::operator>(const base_metadata_t& other) const noexcept

Returns true if value is more than with other

More than check

template<typename T, typename _2>
bool modbus::internal::base_metadata_t<T, _2>::operator>=(const base_metadata_t& other) const noexcept

Parameters
other other metadata
Returns true if value is more than equal with other

More than equal check

template<typename T, typename _2>
bool modbus::internal::base_metadata_t<T, _2>::operator!=(const base_metadata_t& other) const noexcept

Parameters
other other metadata
Returns true if value is not equal with other

Inequality check

template<typename T, typename _2>
base_metadata_t modbus::internal::base_metadata_t<T, _2>::operator-(const base_metadata_t& other) const noexcept

Parameters
other other metadata
Returns new metadata

Minus operator

template<typename T, typename _2>
base_metadata_t modbus::internal::base_metadata_t<T, _2>::operator+(const base_metadata_t& other) const noexcept

Parameters
other other metadata
Returns new metadata

Plus operator

template<typename T, typename _2>
base_metadata_t& modbus::internal::base_metadata_t<T, _2>::operator++() noexcept

Returns instance of metadata

Increment operator

template<typename T, typename _2>
base_metadata_t& modbus::internal::base_metadata_t<T, _2>::operator--() noexcept

Returns instance of metadata

Decrement operator

template<typename T, typename _2>
bool modbus::internal::base_metadata_t<T, _2>::validate() noexcept

Returns true if valid

Validate value

template<typename T, typename _2> template<typename ostream>
ostream& operator<<(ostream& os, const base_metadata_t& obj)

Parameters
os ostream
obj metadata instance
Returns stream

Ostream operator