CppTemplateTutorial
CppTemplateTutorial copied to clipboard
模板参数可为浮点类型
#include <iostream>
template <float a>
float qwq()
{
return a;
}
template <double foo>
double awa()
{
return foo;
}
int main(int argc, char* argv[])
{
std::cout << qwq<3.14F>() << '\n'
<< awa<6.28>() << '\n';
return 0;
}
以上代码编译通过。
IDE:Microsoft Visual Studio Community 2019 16.9.0 Preview 2.0
编译器:msvc
(启用 预览 - 最新 C++ 工作草案中的功能 (/std:c++latest)
)
值得注意的是,允许模板参数是浮点类型和有条件的字面类型,是 C++20 的 feature 。但在作者写的时候这个 feature 可能还没有确定下来,故没有提及,而且可能也不适合在一开始就提及。
另外,建议先确定这个 feature 是否以及在哪个版本钦定的,而不建议通过部分编译器的行为来验证。而且正如在 名称查找 那一节所提及的,MSVC 的行为可能与标准有所不同,更不建议作为验证 feature 的方式。
值得注意的是,允许模板参数是浮点类型和有条件的字面类型,是 C++20 的 feature 。但在作者写的时候这个 feature 可能还没有确定下来,故没有提及,而且可能也不适合在一开始就提及。
另外,建议先确定这个 feature 是否以及在哪个版本钦定的,而不建议通过部分编译器的行为来验证。而且正如在 名称查找 那一节所提及的,MSVC 的行为可能与标准有所不同,更不建议作为验证 feature 的方式。
额好吧(╯▽╰)
谢谢♪(・ω・)ノ