除了使用语法外,我不太了解需求。那正是什么 auto
是为了设计的, auto
得到与添加的相同标准的支持 decltype
...
无论如何,您需要模拟函数调用:
decltype(std::declval<A>()[0]) b = 0; // equivalent to `int b = 0;`
题
对我来说,这看起来像是一个琐碎的问题,也许我没有找到正确的文档。
我有一个结构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;`