userver: storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision > Class Template Reference
Loading...
Searching...
No Matches
storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision > Class Template Reference

#include <userver/storages/clickhouse/io/floating_point_types.hpp>

Detailed Description

template<std::floating_point FloatingPointT, std::uint32_t Precision = std::is_same_v<FloatingPointT, float> ? 6 : 12>
class storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision >

Class that can be escaped for clickhouse queries instead of [double] and [float]. [double] and [float] are escaped as FloatingWithPrecision<double, 12> and FloatingWithPrecision<float, 6> respectively. These constants were derived from the accuracity the numbers from ranges [0.0-100000.0] (doubles) and [0.0-100.0] (floats) can be represented by these type. Clickhouse also supports inf, -inf and nan, see clickhouse docs.

Definition at line 20 of file floating_point_types.hpp.

Public Member Functions

template<typename U>
 FloatingWithPrecision (U value)
 
template<typename U, std::uint32_t AnotherPrecision>
 FloatingWithPrecision (const FloatingWithPrecision< U, AnotherPrecision > &other)
 
template<typename U, std::uint32_t AnotherPrecision>
 FloatingWithPrecision (FloatingWithPrecision< U, AnotherPrecision > &&other)
 
template<typename U, std::uint32_t AnotherPrecision>
FloatingWithPrecisionoperator= (const FloatingWithPrecision< U, AnotherPrecision > &other)
 
template<typename U, std::uint32_t AnotherPrecision>
FloatingWithPrecisionoperator= (FloatingWithPrecision< U, AnotherPrecision > &&other)
 
std::string ToString ()
 

Constructor & Destructor Documentation

◆ FloatingWithPrecision() [1/3]

template<std::floating_point FloatingPointT, std::uint32_t Precision = std::is_same_v<FloatingPointT, float> ? 6 : 12>
template<typename U>
storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision >::FloatingWithPrecision ( U value)
inline

Definition at line 23 of file floating_point_types.hpp.

◆ FloatingWithPrecision() [2/3]

template<std::floating_point FloatingPointT, std::uint32_t Precision = std::is_same_v<FloatingPointT, float> ? 6 : 12>
template<typename U, std::uint32_t AnotherPrecision>
storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision >::FloatingWithPrecision ( const FloatingWithPrecision< U, AnotherPrecision > & other)
inline

Definition at line 28 of file floating_point_types.hpp.

◆ FloatingWithPrecision() [3/3]

template<std::floating_point FloatingPointT, std::uint32_t Precision = std::is_same_v<FloatingPointT, float> ? 6 : 12>
template<typename U, std::uint32_t AnotherPrecision>
storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision >::FloatingWithPrecision ( FloatingWithPrecision< U, AnotherPrecision > && other)
inline

Definition at line 33 of file floating_point_types.hpp.

Member Function Documentation

◆ operator=() [1/2]

template<std::floating_point FloatingPointT, std::uint32_t Precision = std::is_same_v<FloatingPointT, float> ? 6 : 12>
template<typename U, std::uint32_t AnotherPrecision>
FloatingWithPrecision & storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision >::operator= ( const FloatingWithPrecision< U, AnotherPrecision > & other)
inline

Definition at line 38 of file floating_point_types.hpp.

◆ operator=() [2/2]

template<std::floating_point FloatingPointT, std::uint32_t Precision = std::is_same_v<FloatingPointT, float> ? 6 : 12>
template<typename U, std::uint32_t AnotherPrecision>
FloatingWithPrecision & storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision >::operator= ( FloatingWithPrecision< U, AnotherPrecision > && other)
inline

Definition at line 44 of file floating_point_types.hpp.

◆ ToString()

template<std::floating_point FloatingPointT, std::uint32_t Precision = std::is_same_v<FloatingPointT, float> ? 6 : 12>
std::string storages::clickhouse::io::FloatingWithPrecision< FloatingPointT, Precision >::ToString ( )
inline

Definition at line 52 of file floating_point_types.hpp.

Friends And Related Symbol Documentation

◆ FloatingWithPrecision

template<std::floating_point FloatingPointT, std::uint32_t Precision = std::is_same_v<FloatingPointT, float> ? 6 : 12>
template<std::floating_point U, std::uint32_t AnotherPrecision>
friend class FloatingWithPrecision
friend

Definition at line 58 of file floating_point_types.hpp.


The documentation for this class was generated from the following file: