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