#include #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