Что ж, это на самом деле не привело к сбою компилятора - это была просто ошибка, в которой VC ++ не мог принять совершенно хороший код. ( подробности указаны здесь ).
Странно было то, что это произошло только тогда, когда были выполнены три довольно неясных условия. Перемещение одной строки кода было все, что было необходимо для эффективного обходного пути. И одним из необходимых предварительных условий было «использование пространства имен std;» который широко не рекомендуется в производственном коде.
Тем не менее, сообщения, спрашивающие, как решить проблему, были главными в группах новостей Microsoft VC ++. Я не мог понять, как много людей наткнулись на неясную ошибку. Итак, в конце концов, я спросил кого-то .....
Точный код, необходимый для вызова ошибки, был примером из "Страуструпа" " Язык программирования C ++ ". (*)
(*) Заметьте, я не говорю, что он сделал это нарочно. Я уверен, что он протестировал его в UNIX-варианте C ++ и совершенно не знал о его влиянии на VC ++.