gpt4 book ai didi

c++ - 模板函数不接受原始类型?

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:08 24 4
gpt4 key购买 nike

此代码无法编译,但我不知道为什么,typeid() 函数也可以将 int 作为输入参数,所以问题一定与模板有关机制,但我不明白失败背后的原因。

#include <iostream>
#include <typeinfo>

template<typename T> void func(T)
{
std::cout << typeid(T).name() << std::endl;
}

int main()
{
func(int);
return(0);
}

这个模板/代码有什么问题?

最佳答案

您需要传递 int 类型的实例,而不是类型本身:

func(int());
^^ note the parentheses

如果您不想传递一个实例,您可以像这样更改您的代码:

#include <iostream>
#include <typeinfo>

template<typename T> void func()
{
std::cout << typeid(T).name() << std::endl;
}

int main()
{
func<int>();
return(0);
}

关于c++ - 模板函数不接受原始类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13884566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com