gpt4 book ai didi

c++ - 我可以为运算符显式指定模板参数吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:19 26 4
gpt4 key购买 nike

我有 Foo 类:

class Foo {
template <typename T>
T* operator () (void) {
return (T*) something;
}
}

T无法推导出来,但我想要的是能够说出类似的话

Foo foo;    
type_t bar = foo <type_t> ();

但这是语法错误。

有没有办法做到这一点?(或者也许是在不提供类型实例的情况下传递类型的更好方法?)

最佳答案

您可以使用运算符名称语法来实现:

type_t *bar = foo.operator() <type_t> ();

那当然很丑。有两种解决方案:

  1. 更改运算符,使其接受一个参数,从而可以推导类型。

  2. 将其从运算符更改为命名函数。它看起来不像是 operator() 的典型用法。

关于c++ - 我可以为运算符显式指定模板参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22411560/

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