Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
C++14 将允许变量模板:
template <typename T> constexpr T pi = T(3.1415926535897932385);
现在考虑以下情况:
template <typename T = double> constexpr T pi = T(3.1415926535897932385);
问题:我如何获得pi默认参数?
pi
pi; // Option 1 (I hope...) pi<>; // Option 2
基于n3651我会说pi<>;。在目前的标准模板参数推导中,能够做到pi的只是一种形式,只适用于函数。由于该论文完全没有提及 TAD,因此他们不太可能使用它。
pi<>;
根据此草案,用法将是pi<TYPE>,但这可能会随着时间的推移而改变。仅pi使用编译器可能无法推断出类型,pi就像编写这样的函数:template <class T> void foo();并像这样使用:foo()
pi<TYPE>
template <class T> void foo();
foo()
对于默认参数,它的行为应该就像一个函数,所以它应该是pi;
pi;