Хотя можно обернуть определенные экземпляры шаблона в C, это трудоемко и становится невозможным, если существует большое количество экземпляров шаблона.Более масштабируемое решение - написать инструмент для расширения шаблонов C ++ текстовым способом, например, препроцессором.Затем поместите его на этапе предварительной сборки для сценария / префиксов компиляции.Затем вы получаете автоматически расширенный код, который можно обернуть в C (или уже волшебным образом обернуть в C, если инструмент достаточно хорош).Развертывание шаблона в текст не должно быть даже неэффективным во время выполнения, так как это то же самое, что и в C ++.Но я ожидаю, что он будет немного медленнее, чем компилятор C ++.