【发布时间】:2015-01-15 09:19:09
【问题描述】:
我发现了一段带有奇怪参数的代码,它是一种类型:
#include <iostream>
using namespace std;
template<class T>
int function1(T count,double)
{
cout<<"function1 is called"<<endl;
return 1111;
}
int main()
{
typedef int aaaa;
function1(1,aaaa());
}
而这个函数的输出是
function1 被调用
我想知道当参数是类型时是什么意思?为什么我要给出函数aaaa(),而没有括号的aaaa会给出编译器错误?
error: expected primary-expression before ‘)’ token
function1(1,aaaa);
^
【问题讨论】:
-
它创建一个该类型的临时对象。
标签: c++ templates c++11 types typedef