我有几个问题
1)
#include <iostream>
template<typename T>
void func(T t){}
int main()
{
int i;
double d;
std::cin>>i;
if(i==1)
func(i);
else
func(d);
}
Run Code Online (Sandbox Code Playgroud)
何时(运行时/编译时)生成所需的函数?实例化后有多少个版本的函数?
2)有什么区别
template<typename T> auto func(T t){return 0;}
Run Code Online (Sandbox Code Playgroud)
和
template<typename T> constexpr auto func(T t){return 0;}
Run Code Online (Sandbox Code Playgroud)
据我了解,template在编译时constexpr也有效。为什么(以及何时)我需要使用 constexpr模板?