Files
GdCpp12/include/UserSuffix.h

43 lines
2.7 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include <stdint.h>
#ifndef _SUFFIX_KMG_
#define _SUFFIX_KMG_
/// 数值常量加尾缀_K代表乘以1024数据类型为size_t。例如4_K代表4096。
inline constexpr size_t operator "" _K (size_t x) { return x * 1024;}
/// 数值常量加尾缀_iK代表乘以1024数据类型为int32_t。例如4_K代表4096。
inline constexpr int32_t operator "" _iK(size_t x) { return int32_t (x * 1024); }
/// 数值常量加尾缀_uK代表乘以1024数据类型为uint32_t。例如4_K代表4096。
inline constexpr uint32_t operator "" _uK(size_t x) { return uint32_t(x * 1024); }
/// 数值常量加尾缀_M代表乘以1024*1024数据类型为size_t。如1_M代表1,048,576。
inline constexpr size_t operator "" _M (size_t x) { return x * 1024 * 1024;}
/// 数值常量加尾缀_iM代表乘以1024*1024数据类型为int32_t。如1_iM代表1,048,576。
inline constexpr int32_t operator "" _iM(size_t x) { return int32_t (x * 1024 * 1024); }
/// 数值常量加尾缀_uM代表乘以1024*1024数据类型为uint32_t。如1_uM代表1,048,576。
inline constexpr uint32_t operator "" _uM(size_t x) { return uint32_t(x * 1024 * 1024); }
/// 数值常量加尾缀_G代表乘以1024*1024*1024数据类型为size_t。如1_G代表1,073,741,824
inline constexpr size_t operator "" _G (size_t x) { return x * 1024 * 1024 * 1024;}
// 由于32位以G为单位很容易溢出因此不提供相关尾缀表示建议用64位数。
/// 数值常量加尾缀_k代表乘以1000数据类型为size_t。如4_k代表4000
inline constexpr size_t operator "" _k (size_t x) { return x * 1000;}
/// 数值常量加尾缀_ik代表乘以1000数据类型为int32_t。如4_k代表4000
inline constexpr int32_t operator "" _ik(size_t x) { return int32_t (x * 1000); }
/// 数值常量加尾缀_uk代表乘以1000数据类型为uint32_t。如4_k代表4000
inline constexpr uint32_t operator "" _uk(size_t x) { return uint32_t(x * 1000); }
/// 数值常量加尾缀_m代表乘以1,000,000数据类型为size_t。如1_m代表1,000,000
inline constexpr size_t operator "" _m (size_t x) { return x * 1000 * 1000;}
/// 数值常量加尾缀_im代表乘以1,000,000数据类型为int32_t。如1_m代表1,000,000
inline constexpr int32_t operator "" _im(size_t x) { return int32_t (x * 1000 * 1000); }
/// 数值常量加尾缀_um代表乘以1,000,000数据类型为uint32_t。如1_m代表1,000,000
inline constexpr uint32_t operator "" _um(size_t x) { return uint32_t(x * 1000 * 1000); }
/// 数值常量加尾缀_g代表乘以1,000,000,000数据类型为size_t。如1_g代表1,000,000,000
inline constexpr size_t operator "" _g(size_t x){ return x * 1000 * 1000 * 1000;}
#endif