C ++ boost :: bind сообщает о недоступном базовом классе

Я пытаюсь использоватьboost::bind вызвать функцию-член в классе. Обычно это работает нормально, но в данном конкретном случае мой компилятор (GCC) жалуется на то, что я пытаюсь использовать недоступный базовый класс, когда это не так.

Вот некоторый код, который демонстрирует проблему. Что я делаю неправильно?

#include 
#include 
#include 

class base
{
    protected:
        void test()
        {
            std::cout < "base::test()\n";
        }
};

class derived: virtual protected base
{
    public:
        using base::test;
};

int main(void)
{
    derived d;

    // This works, calling derived::test(), which in turn calls base::test()
    d.test();

    // This does not work, saying 'base' is an inaccessible base of 'derived',
    // but I am not binding base::test, I am binding derived::test.
    boost::function

Ответы на вопрос(2)

Ваш ответ на вопрос