Promotion classes which provide an interface for elevating and demoting a scalar or VDB type to a higher or lower precision. Integer types preserve their sign. Types promotion are only valid between 8 to 64 bits (long doubles are not supported).
More...
#include <openvdb/Types.h>
|
| template<size_t Shift = ~0UL> |
| using | Promote = typename TypeT< std::max(size_t(8), std::min(size_t(64), (true ? size_t(8)*(sizeof(T)<<Shift) : size_t(8)*(sizeof(T)>>Shift)))) >::type |
| |
| template<size_t Shift = ~0UL> |
| using | Demote = typename TypeT< std::max(size_t(8), std::min(size_t(64), (false ? size_t(8)*(sizeof(T)<<Shift) : size_t(8)*(sizeof(T)>>Shift)))) >::type |
| |
| using | Highest = typename TypeT<64ul>::type |
| |
| using | Lowest = typename TypeT<8ul>::type |
| |
| using | Next = Promote<1> |
| |
| using | Previous = Demote<1> |
| |
template<typename T>
struct openvdb::v12_0::PromoteType< T >
Promotion classes which provide an interface for elevating and demoting a scalar or VDB type to a higher or lower precision. Integer types preserve their sign. Types promotion are only valid between 8 to 64 bits (long doubles are not supported).
◆ Demote
template<typename T>
template<size_t Shift = ~0UL>
| using Demote = typename TypeT< std::max(size_t(8), std::min(size_t(64), (false ? size_t(8)*(sizeof(T)<<Shift) : size_t(8)*(sizeof(T)>>Shift)))) >::type |
◆ Highest
template<typename T>
| using Highest = typename TypeT<64ul>::type |
◆ Lowest
template<typename T>
| using Lowest = typename TypeT<8ul>::type |
◆ Next
◆ Previous
◆ Promote
template<typename T>
template<size_t Shift = ~0UL>
| using Promote = typename TypeT< std::max(size_t(8), std::min(size_t(64), (true ? size_t(8)*(sizeof(T)<<Shift) : size_t(8)*(sizeof(T)>>Shift)))) >::type |