LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

И как этот синтаксический сахар помогает достучаться до private-базовых классов, again?

Второй test_pre_is_base_of зафейлится на касте (он пройдёт, но будет ошибка) и выберется первый вариант (ибо SFINAE), который вернёт true.

Из libstdc++:

  template<typename _Base, typename _Derived>
    struct is_base_of
    : public integral_constant<bool, __is_base_of(_Base, _Derived)>
    { };

А без встроенной функции надо извращаться.

Исправление xaizek, :

И как этот синтаксический сахар помогает достучаться до private-базовых классов, again?

Второй test_pre_is_base_of зафейлится на касте (он пройдёт, но будет ошибка) и выберется первый вариант (SFINAE), который вернёт true.

Из libstdc++:

  template<typename _Base, typename _Derived>
    struct is_base_of
    : public integral_constant<bool, __is_base_of(_Base, _Derived)>
    { };

А без встроенной функции надо извращаться.

Исходная версия xaizek, :

И как этот синтаксический сахар помогает достучаться до private-базовых классов, again?

Второй test_pre_is_base_of зафейлится на касте (он пройдёт, но будет ошибка) и выберется первый вариант, который вернёт true.

Из libstdc++:

  template<typename _Base, typename _Derived>
    struct is_base_of
    : public integral_constant<bool, __is_base_of(_Base, _Derived)>
    { };

А без встроенной функции надо извращаться.