Как портативно определить, поддерживает ли компилятор против

Я работаю над утилитой, которая должна быть способна компилироваться как на стандартных, так и на предстандартных компиляторах C++. Код может и будет брошен практически на любой существующий компилятор C++.

Я ищу средство для надежного и переносимого определения того, поддерживает ли целевой компилятор заголовочные файлы с расширением .h или без него. Мне также нужно будет определить, поддерживаются ли пространства имен. Обе эти задачи могут быть возможны или невозможны.

Немного предыстории: Утилита представляет собой языковое расширение Inline::CPP для Perl. Расширение автоматически включает , и пытается угадать, требуется ли '.h' или нет (и, конечно, поддерживает ли компилятор пространства имен). Но она далека от совершенства в этом отношении, и эта проблема снижает широту полезности утилиты.

Итак, повторим вопрос: Как мне портативно определить, поддерживает ли компилятор стандартные заголовки, такие как , или достандартные, такие как ?

0
задан DavidO 17 August 2012 в 17:31
поделиться