Как я могу написать шаблон/концепцию, чтобы проверить, соответствует ли тип именованному требованию DefaultInsertable

#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>