gpt4 book ai didi

c++ - 我可以在不重复签名的情况下实例化模板吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:01 24 4
gpt4 key购买 nike

我想实例化一些带有长签名的函数:

template<typename T> void foo(
T& t,
SomeType some_parameter,
AnotherType another_parameter,
EtcType yet_another_parameter,
AsYouCanTell this_is_a_very_long_signature);

实例化 foo 的直接方法是:

template void foo<int>(
int& t,
SomeType some_parameter,
AnotherType another_parameter,
EtcType yet_another_parameter,
AsYouCanTell this_is_a_very_long_signature);

但这是长签名的重复。如果我想要 5 种不同类型的特定实例化怎么办 - 我是否将其复制 5 次?没有意义...

我在想也许我可以写

template decltype(foo<int>);

但由于某些原因,这不起作用。我能否以某种方式使其发挥作用?

最佳答案

确实,您可以在不重复其签名的情况下实例化您的函数 - 但语法略有不同:

template
decltype(foo<int>) foo<int>;

decltype 为您提供一个类型,但显式实例化需要一个声明,即一个类型后跟一个名称。

尝试使用 GCC 4.9.1;它按预期工作,并且即使使用 -pedantic 标志也可以在没有任何警告的情况下编译。

关于c++ - 我可以在不重复签名的情况下实例化模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28355934/

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