gpt4 book ai didi

带有 char[] 参数的 C++ 模板

转载 作者:行者123 更新时间:2023-11-30 05:38:11 24 4
gpt4 key购买 nike

如何将指向 C 样式数组的指针传递给模板函数?

以下编译时不会出现类似 error: no matching function for call to 'func(char (*)[2])' 的错误

// What do I need to change on the next line to make this compile?
template<typename T> bool func(T **var)
{
return var == 0;
}

int main() {
char ar[2] = { 1, 2 };
func(&ar);

return 0;
}

template<typename T> bool func(T *var[])也不起作用。

最佳答案

简单地:

template<typename T> bool func(T* var)
{
return var == 0;
}

对于 func(&ar);T 将是 char[2]T* char (*)[2].

甚至:

template<typename T> bool func(T var)
{
return var == 0;
}

对于 func(&ar);T 将是 char (*)[2]

如果你想限制为 C 风格的数组,你可以这样做:

template<typename T, std::size_t N> bool func(T (*var)[N])
{
return var == 0;
}

关于带有 char[] 参数的 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32898271/

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