对我来说,这看起来像是一个琐碎的问题,也许我没有找到正确的文档。

我有一个结构A,我想将参数B定义为函数的返回类型A:

struct A{
    int operator[](int);
};

然后在某个时候

decltype(A::operator[]) b = 0;

我可以做到这一点:但是这很丑..

A a;
decltype(a[0]) b = 0;

(它可以是双重 / int等),我不想使用模板。

谢谢,

有帮助吗?

解决方案

除了使用语法外,我不太了解需求。那正是什么 auto 是为了设计的, auto 得到与添加的相同标准的支持 decltype...

无论如何,您需要模拟函数调用:

decltype(std::declval<A>()[0]) b = 0;   // equivalent to `int b = 0;`
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top