c++11 用戶定義字面量
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <vector> #include <map> // 用戶自定義字面值,或者叫“自定義后綴”更直觀些,主要作用是簡化代碼的讀寫。 long double operator"" _mm(long double x) { return x / 1000; } long double operator"" _m(long double x) { return x; } long double operator"" _km(long double x) { return x * 1000; } /* 根據 C++ 11 標准,只有下面參數列表才是合法的 char const * unsigned long long long double char const *, size_t wchar_t const *, size_t char16_t const *, size_t char32_t const *, size_t 最后四個對於字符串相當有用,因為第二個參數會自動推斷為字符串的長度 */ size_t operator"" _len(char const * str, size_t size) { return size; } // 對於參數char const *,應該被稱為原始字面量 raw literal 操作符. char const * operator"" _r(char const* str) { return str; } void mytest() { std::cout << 1.0_mm << std::endl; //0.001 std::cout << 1.0_m << std::endl; //1 std::cout << 1.0_km << std::endl; //1000 std::cout << "xyz"_len << std::endl; //結果為3 std::cout << 250_r << std::endl; //結果為250 return; } int main() { mytest(); system("pause"); return 0; }