Я думаю, что лучший ответ здесь - «это зависит», потому что понятие шаблона имеет нечеткие границы.
Если вы хотите сказать, что «виртуальная функция C ++» или «Java-интерфейс» является «шаблоном», тогда, по умолчанию, у вас есть «шаблон», который применим только к одному языку за исключением все другие. Учитывая, что шаблон - это просто способ решения проблемы, который может быть применен в различных контекстах, технически можно утверждать, что одноязычные шаблоны в теории могут существовать.
Однако общее использование термина «шаблон» является чем-то более абстрактным, чем особенность языка. Я думаю, что большинство людей могут согласиться с тем, что существуют шаблоны, характерные для определенных семейств языков, где семья может быть очень маленькой, например, языки, поддерживающие ОО, действующие лица, поддерживающие общение на основе каналов и т. д.
Когда ваш шаблон становится настолько специфичным, что семейство языков, к которому он применяется, сводится к одному языку, вы попадаете в нечеткую область, где люди могут спорить о том, является ли что-то шаблоном или языковой функцией. Обоснование здесь заключается в том, что «ну, черт возьми, кто-то может просто создать другой язык на основе этого языка, чтобы шаблон также применялся к производному языку?»
Однако, , если , вы можете обоснованно утверждать, что ваш предполагаемый шаблон действительно является способом решения проблемы, которую можно использовать в различных контекстах, и что ни один из существующих языков программирования не может разумно реализовать это решение, тогда вы можете сказать, да.
.... Пока кто-то не создаст этот диалект! : -)