C++14模板的改进

Share on:
100 Words | Read in about 1 Min | View times

Overview

C++14引入了变量模板的新形式,在语法上等价于一个没有参数但是有返回值的模板函数。变量模板在语法上更加清晰简便,仅仅是一个语法糖。本节内容就介绍一下变量模板特性。

本系列文章将包括以下领域:

本章其他内容请见 《现代C++》

在C++14之前,我们可以使用模板函数来返回一个变量值:

1template<typename T>
2constexpr T pi() {
3    return T(3.1415926535897932385);
4}

到C++14,可以直接用变量模板来定义常量:

 1#include <iostream>
 2#include <iomanip>
 3
 4template<typename T>
 5constexpr T pi = T(3.1415926535897932385);
 6
 7int main() {
 8    std::cout << pi<int> << std::endl; //3
 9    std::cout << std::setprecision(10) << pi<float> << std::endl; //3.141592741
10    std::cout << std::setprecision(10) << pi<double> << std::endl; //3.141592654
11}
Prev Post: 『C++14 auto关键字的改进』
Next Post: 『C++读写锁』