Около десяти лет назад, после дня конференции, я оказался в пабе с Эрвином Унру и несколькими другими, и я спросил его о программе, о которой упоминал VJovic . К тому времени у нас было несколько сортов пива, это была неофициальная встреча, и она прожила в моей голове в течение десятилетия, так что возьмите это с крошкой соли, но согласно моим воспоминаниям:
Он сказал, что они добавили шаблонные функции, чтобы лучше обслуживать STL. По его словам, некоторые / многие в комитете считают, что они что-то создают, не зная его полных возможностей. Он сам подозревал, что все элементы шаблона, особенно такая частичная специализация, составляют полный язык Тьюринга, и он всегда хотел сделать формальное доказательство этого, но так и не смог обойтись.
Вместо этого одна ночь на заседании по стандартизации он пришел с этой программой, отпечатанной простые числа как сообщения об ошибках (версия , которая должна работать с современными компиляторами здесь ) , что вычисляемых во время компиляции. Как шаблонная метапрограмма, она не очень впечатляет по сегодняшним стандартам, но, в конце концов, была первой. Кто-то сделал то, что он считал шуткой, официально представив программу, чтобы она стала официальным документом по стандартизации ISO.
Я помню, что я специально спросил его о реакции Бьярна Страуструпа на программу, и в ответ Эрвин подражал ему, закрыв глаза рукой. :)
Оглядываясь назад, я сожалею, что не спросил Тодда Велдхейзена , который также был на этой конференции, как он придумал шаблоны выражений . (Он, конечно, был хорошим парнем, с которым можно было поговорить.) Но я был намного моложе, и упустил возможность на всю жизнь.:(
Этот отрывок взят из «шаблонов c ++» Вандевурда и Йосуттиса (глава 17).
Как вы можете видеть, он был обнаружен рано, и его сила была немедленно признана.
источник