LibreOffice Module o3tl (master) 1
Classes | Namespaces | Enumerations | Functions | Variables
unit_conversion.hxx File Reference
#include <o3tl/safeint.hxx>
#include <sal/macros.h>
#include <sal/types.h>
#include <array>
#include <cassert>
#include <numeric>
#include <utility>
#include <type_traits>
Include dependency graph for unit_conversion.hxx:

Go to the source code of this file.

Classes

struct  o3tl::detail::m_and_d
 

Namespaces

namespace  o3tl
 
namespace  o3tl::detail
 

Enumerations

enum class  o3tl::Length {
  o3tl::mm100 = 0 ,
  o3tl::mm10 ,
  o3tl::mm ,
  o3tl::cm ,
  o3tl::m ,
  o3tl::km ,
  o3tl::emu ,
  o3tl::twip ,
  o3tl::pt ,
  o3tl::pc ,
  o3tl::in1000 ,
  o3tl::in100 ,
  o3tl::in10 ,
  o3tl::in ,
  o3tl::ft ,
  o3tl::mi ,
  o3tl::master ,
  o3tl::px ,
  o3tl::ch ,
  o3tl::line ,
  o3tl::count ,
  o3tl::invalid = -1
}
 

Functions

template<typename I >
constexpr bool o3tl::detail::isBetween (I n, sal_Int64 min, sal_Int64 max)
 
template<typename I , std::enable_if_t< std::is_integral_v< I >, int > = 0>
constexpr sal_Int64 o3tl::detail::MulDiv (I n, sal_Int64 m, sal_Int64 d)
 
template<typename F , std::enable_if_t< std::is_floating_point_v< F >, int > = 0>
constexpr double o3tl::detail::MulDiv (F f, sal_Int64 m, sal_Int64 d)
 
template<typename I , std::enable_if_t< std::is_integral_v< I >, int > = 0>
constexpr sal_Int64 o3tl::detail::MulDiv (I n, sal_Int64 m, sal_Int64 d, bool &bOverflow, sal_Int64 nDefault)
 
template<typename I , std::enable_if_t< std::is_integral_v< I >, int > = 0>
constexpr sal_Int64 o3tl::detail::MulDivSaturate (I n, sal_Int64 m, sal_Int64 d)
 
template<class M , class N >
constexpr std::common_type_t< M, No3tl::detail::asserting_gcd (M m, N n)
 
template<int N>
constexpr auto o3tl::detail::prepareMDArray (const m_and_d(&mdBase)[N])
 
template<typename U >
constexpr sal_Int64 o3tl::detail::md (U i, U)
 
constexpr sal_Int64 o3tl::detail::md (Length i, Length j)
 
template<typename N >
constexpr auto o3tl::convert (N n, sal_Int64 mul, sal_Int64 div)
 
template<typename N , typename U >
constexpr auto o3tl::convert (N n, U from, U to)
 
template<typename N >
constexpr auto o3tl::toTwips (N number, Length from)
 
template<typename N , typename U >
constexpr auto o3tl::convert (N n, U from, U to, bool &bOverflow, sal_Int64 nDefault=0)
 
template<typename N , typename U >
constexpr auto o3tl::convertSaturate (N n, U from, U to)
 

Variables

constexpr m_and_d o3tl::detail::mdBaseLen []
 
constexpr auto o3tl::detail::aLengthMDArray = prepareMDArray(mdBaseLen)