这对我来说似乎是一个微不足道的问题,也许我找不到合适的文档..
我有一个结构A,我想将参数b定义为函数A的返回类型:
struct A{
int operator[](int);
};
然后在某个时候
decltype(A::operator[]) b = 0;
我能做到这一点:但它太丑了......
A a;
decltype(a[0]) b = 0;
(可以是double / int等),我不想使用模板。
谢谢,
答案 0 :(得分:2)
除了使用语法之外,我不太了解需要。这正是auto
的设计目标,auto
由添加decltype
的同一标准支持...
无论如何,您需要模拟函数调用:
decltype(std::declval<A>()[0]) b = 0; // equivalent to `int b = 0;`