Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
1

Is_base_of

05.12.2015, 23:23. Показов 970. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Продолжаем день странных вопросов:

Вот реализация is_base_of:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//is_base_of <A,B> Узнаёт, является ли B наследником A 
typedef char (&yes)[1];
typedef char (&no)[2];
 
template <typename B, typename D>
struct Host
{
  operator B*() const;
  operator D*();
};
 
template <typename B, typename D>
struct is_base_of
{
  template <typename T> 
  static yes check(D*, T);
  static no check(B*, int);
 
  static constexpr bool value = sizeof(check(Host<B,D>(), int())) == sizeof(yes);
};
Оно работает... Но я не понимаю, как...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2015, 23:23
Ответы с готовыми решениями:

Как правильно работать с std::is_base_of?
Объясните пожалуйста, почему такой код не работает? #include &lt;iostream&gt; #include &lt;vector&gt; ...

Шаблоны std::is_base_of не определяет наследование
Добрый день, подскажите почему не удается отловить наследников в constexpr...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
265 / 165 / 56
Регистрация: 25.02.2015
Сообщений: 435
05.12.2015, 23:28 2
в книге
Оригинальное название: Exceptional C++
Автор: Герб Саттер (Herb Sutter)
http://www.ozon.ru/context/detail/id/3817580/
в задаче 1.11 есть подраздел (Требование наследования), где это дело расписано. лучше найдите и почитайте. в двух словах да еще чтобы понятно было это не объяснить.
1
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
05.12.2015, 23:30  [ТС] 3
Благодарствую. Сейчас буду искать.
0
05.12.2015, 23:30
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru