LibreOffice Module o3tl (master) 1
Classes | Namespaces | Functions
strong_int.hxx File Reference
#include <sal/config.h>
#include <limits>
#include <cassert>
#include <type_traits>
Include dependency graph for strong_int.hxx:

Go to the source code of this file.

Classes

struct  o3tl::strong_int< UNDERLYING_TYPE, PHANTOM_TYPE >
 Wrap up an integer type so that we prevent accidental conversion to other integer types. More...
 

Namespaces

namespace  o3tl
 
namespace  o3tl::detail
 

Functions

template<typename T1 , typename T2 >
constexpr std::enable_if< std::is_signed< T1 >::value &&std::is_signed< T2 >::value, bool >::type o3tl::detail::isInRange (T2 value)
 
template<typename T1 , typename T2 >
constexpr std::enable_if< std::is_signed< T1 >::value &&std::is_unsigned< T2 >::value, bool >::type o3tl::detail::isInRange (T2 value)
 
template<typename T1 , typename T2 >
constexpr std::enable_if< std::is_unsigned< T1 >::value &&std::is_signed< T2 >::value, bool >::type o3tl::detail::isInRange (T2 value)
 
template<typename T1 , typename T2 >
constexpr std::enable_if< std::is_unsigned< T1 >::value &&std::is_unsigned< T2 >::value, bool >::type o3tl::detail::isInRange (T2 value)
 
template<typename UT , typename PT >
strong_int< UT, PT > o3tl::operator+ (strong_int< UT, PT > const &lhs, strong_int< UT, PT > const &rhs)
 
template<typename UT , typename PT >
strong_int< UT, PT > o3tl::operator- (strong_int< UT, PT > const &lhs, strong_int< UT, PT > const &rhs)