SO C ++ 20 представляет новую вещь, называемую концепцией, которая из того, что я вижу, используется для ограничения типов данных, которые можно помещать в шаблон. Таким образом, для функции я мог бы потребовать, чтобы данные, которые приправлены, должны иметь участник :: inner или что -то в этом роде. Но разве явное экземпляр уже не делает то же самое? Например, если я написал библиотеку функций, и я не напрямую написал реализацию непосредственно в файлы заголовков, а скорее написал ее в отдельном файле .cpp , а также явное создание их. Разве такой подход не побеждает использование концепции ? Как будто я, разработчик, создает воспроизведение некоторых типов данных для некоторой функции, я уже гарантирую, что это будет работать так же, как и ожидалось, когда вписывается в аргумент функции. И если я не создал создания функции для класса, то вы просто не могли бы ее назвать. За исключением того, что кажется, что ошибка концепции C ++ 20 более ясна, чем ошибка, которую вы получите без концепции.
Подробнее здесь: https://stackoverflow.com/questions/683 ... plates-doe