我有一个关于 C++ 元编程中的类型推导的小问题。有一定的功能做一些动作。
主文件
template<typename T> void foo(T arg) {
// do some action on argument
std::cout << typeid(arg).name() << std::endl;
}
int main(int argc, char** argv) {
int array[100] = {0};
std::cout << typeid(array).name() << std::endl;
foo(array);
return 0;
}
输出:
A100_i
Pi
为什么函数foo()中的arg具有与函数main()中的数组不同的数据类型?