#c #templates #stl #c -concepts
Вопрос:
При реализации моего собственного forward_list
шаблона класса я увидел, что некоторые методы, такие как resize()
требуют, чтобы тип был по умолчанию. Согласно документации, по умолчанию не подлежит
Указывает, что экземпляр типа может быть создан по умолчанию на месте данным распределителем.
Я понимаю, что означает DefaultConstructable, и я могу обеспечить соответствие моего типа T этому требованию либо с помощью default_initializable
концепции, либо со следующим шаблоном:
template <typename = std::enable_if_t<(T(),T{},true),int*>>
где T-любой тип
Но как я мог убедиться, что тип может быть создан по умолчанию на месте данным распределителем?
Комментарии:
1. для DefaultConstructable вы можете использовать
std::is_default_constructible<T>