调用模板函数时语法奇怪

Weird syntax when calling template function

提问人:Oodini 提问时间:11/8/2023 最后编辑:Oodini 更新时间:11/9/2023 访问量:66

问:

我正在阅读其他人完成的代码,并且有一个带有静态模板函数的类:

struct Foo
{
    template <typename A, typename B>
    static void myFunction() { }
};

在通话网站上,我读到:

Foo::template myFunction<int,double>();

为什么在呼叫网站上这样做? 当我删除它时,它无论如何都会编译。::template

我以前已经看过这种语法,但我不记得是什么用的,而且在搜索引擎上搜索它非常困难......

代码示例:https://www.ideone.com/fwQzx3

谢谢。

C++ 模板

评论

2赞 463035818_is_not_an_ai 11/8/2023
您可能将示例简化得太多,并且可能实际上可以在哪里.你解释你不理解的代码的问题是,你无法知道什么是必要的,什么不是。你能展示你读到的代码的实际完整示例吗?T::template myFunction<int, float>();TFoo
3赞 463035818_is_not_an_ai 11/8/2023
static myFunction()甚至不是有效的语法。请发布一个最小的可重复示例
0赞 463035818_is_not_an_ai 11/8/2023
如果我必须猜测,我会说它是这样的:godbolt.org/z/7znqYT4G7,这需要:godbolt.org/z/vT8efhzP1template
0赞 463035818_is_not_an_ai 11/8/2023
您添加的示例就是您的示例。那里不需要关键字。为什么其他人把它放在其他代码中,除非你向我们展示该代码,否则我们无法告诉您template
2赞 463035818_is_not_an_ai 11/8/2023
stackoverflow.com/questions/610245/......

答: 暂无答案