如何将const /非const成员函数传递给BOOST_TYPEOF?

时间:2015-01-31 21:32:40

标签: c++ boost const c++03 typeof

#include <boost/typeof/typeof.hpp>
struct Test
{
    const int& foo();
   // const int& foo() const;
};

int main()
{
    BOOST_TYPEOF(&Test::foo) ss;
}

此代码编译。在解开第二个函数后,我收到错误,因为它不知道给出了哪个函数foo。如何在这里传递const或nonconst成员函数?

问题出在这里:

template<typename Class, typename T>
struct MemberFuctionHasConstRefReturnType
{
    static const bool value = false;
};

template<typename Class, typename T>
struct MemberFuctionHasConstRefReturnType<Class, const T&(Class::*)()const>
{
    static const bool value = true;
};

此元函数检查成员函数的返回类型是否为const引用。我不能将const /非const函数传递给它。

0 个答案:

没有答案