Переслать декларацию или наследовать std :: type_index - PullRequest
0 голосов
/ 25 сентября 2019

Я работаю над несколькими довольно тяжелыми модулями и хочу предоставить облегченный заголовок с некоторыми предварительными декларациями.В то же время я использую std::type_index в коде, чтобы переключаться между различными типами, и поэтому должен ввести этот тип в заголовок «forward декларации».

Для этого у меня есть два вопроса: 1)Неужели так плохо делать предварительную декларацию, такую ​​как

namespace std { struct type_index; }

2) Если это так - есть ли причины не наследовать ее, как это:

// light.hpp:
struct TypeID;

// heavy_implementation.hpp
struct TypeID : std::type_index {}; // just empty body

Наконец: еслиоба варианта подвержены ошибкам и / или по какой-то причине их трудно поддерживать - есть ли способ прозрачно (без непрозрачных типов) ввести std:: тип, подобный type_index, в облегченный заголовок?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...