那么在c ++ 11中绑定和引用呢

时间:2016-06-04 17:20:38

标签: c++11 compiler-errors bind

为什么这个代码在c ++ 11中编译it2和it4是正确的。 但it1和it3是非静态函数的编译错误? 这是std编译器的错误吗?或者我理解这些错误?

#include <iostream>
#include <functional>
using namespace std;
namespace test {
    class a {
        public:
            void funa() {}
    };

    class b : public a {
        public:
            void funb() { }
    };
    struct c {
        void func() {}
    };
}
int main()
{
    test::b b1;
    test::c c1;
    auto it1 = std::bind(&(test::c::func),&c1);
    auto it2 = std::bind(&test::c::func,&c1);
    auto it3 = std::bind(&test::a::funa, &b1);
    auto it4 = std::bind(&(test::a::funa),&b1);
}

0 个答案:

没有答案