C++14模板的改进
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}