xo-unit: move wdith2x helper template to own .hpp file
This commit is contained in:
parent
b028588877
commit
cfdf380c05
2 changed files with 40 additions and 22 deletions
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "natural_unit.hpp"
|
||||
#include "width2x.hpp"
|
||||
|
||||
namespace xo {
|
||||
namespace qty {
|
||||
|
|
@ -55,27 +55,6 @@ namespace xo {
|
|||
}
|
||||
|
||||
namespace detail {
|
||||
template <typename Int>
|
||||
struct width2x;
|
||||
|
||||
template <>
|
||||
struct width2x<std::int16_t> {
|
||||
using type = std::int32_t;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct width2x<std::int32_t> {
|
||||
using type = std::int64_t;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct width2x<std::int64_t> {
|
||||
using type = __int128_t;
|
||||
};
|
||||
|
||||
template <typename Int>
|
||||
using width2x_t = width2x<Int>::type;
|
||||
|
||||
template <typename Int,
|
||||
typename Int2x = width2x<Int>,
|
||||
typename OuterScale = ratio::ratio<Int2x>>
|
||||
|
|
|
|||
39
include/xo/unit/width2x.hpp
Normal file
39
include/xo/unit/width2x.hpp
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
/** @file width2x.hpp
|
||||
*
|
||||
* Author: Roland Conybeare
|
||||
**/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "natural_unit.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
namespace xo {
|
||||
namespace qty {
|
||||
namespace detail {
|
||||
template <typename Int>
|
||||
struct width2x;
|
||||
|
||||
template <>
|
||||
struct width2x<std::int16_t> {
|
||||
using type = std::int32_t;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct width2x<std::int32_t> {
|
||||
using type = std::int64_t;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct width2x<std::int64_t> {
|
||||
using type = __int128_t;
|
||||
};
|
||||
|
||||
template <typename Int>
|
||||
using width2x_t = width2x<Int>::type;
|
||||
}
|
||||
|
||||
} /*namespace qty*/
|
||||
} /*namespace xo*/
|
||||
|
||||
/** end width2x.hpp **/
|
||||
Loading…
Add table
Add a link
Reference in a new issue