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