以下代码:
struct A
{
int f(int);
auto g(int x) -> decltype(f(x));
};
无法编译并出现错误:
error: cannot call member function 'int B::f(int)' without object
如果我把它改成:
struct A
{
int f(int);
auto g(int x) -> decltype(this->f(x));
};
我收到另一个错误:
error: invalid use of 'this' at top level
这两者有什么问题吗?我正在使用海湾合作委员会4.6
以下是神奇的话语:
struct A
{
int f(int);
auto g(int x) -> decltype((((A*)0) ->* &A::f)(x)) ;
};
Edit我从 Mikael Persson 的回答中看到,这就是 boost 中的实现方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)