c++11 用戶定義字面量


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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM