Я только что допустил эту ошибку ...
g ++ понял бы это правильно, так как он имеет ограничения, но не так ограничен, как cl ...
Я нашел эту страницу, которая, по моему мнению, представляет интерес для этого вопроса.
http://msdn.microsoft.com/en-us/library/bdscwf1c%28v=vs.80%29.aspx
С моей стороны я попытался / Zm2000 выделить 1 Гб пространства для стека компилятора , но это не устранило проблему. Единственным другим способом было не иметь / O2 (то есть с / Od он компилируется и связывается просто отлично.)
На самом деле, при первой компиляции компоновщик аварийно завершает работу, и при попытке на 2+ cl выплевывает эту ошибку. Я думаю, что это связано с предварительно скомпилированными заголовками.
На всякий случай, так как некоторые люди спрашивали, я использую мой заголовок Controlled Variables, который на данный момент составляет около 600Kb. Просто шаблоны, но очень простые шаблоны (действительно, посмотрите на них!) Так что я думаю, что они используют алгоритм оптимизации, который, вероятно, проверяет большинство, если не все функции шаблонов, а не только и только те, которые необходимы (что очень мало). )
http://snapwebsites.org/project/controlled-vars