C++ я нужен шаблон, который можно назвать так:Обнаружить, если тип существует в
int x = type_exists< std::vector<int> >::value;
Это должно установить й до 1, если #include <vector>
присутствовали (явно или транзитивно) ранее в источнике , в противном случае он должен установить x в 0.
Возможно ли это сделать на C++? Я использую GCC, поэтому расширения GCC также прекрасны.
Также можно немного изменить синтаксис вызова.
Нельзя запускать компилятор C++ дважды: сначала просто выяснить, получим ли мы ошибку компиляции.
Что вы будете делать с такой функцией? – Mat
Связано: [Как обнаружить существование класса с использованием SFINAE?] (Http://stackoverflow.com/questions/10711952/how-to-detect-existence-of-a-class-using-sfinae) –
@gx_: Я не мог найти там ничего полезного. 'class_defined' потребовалось бы добавить' CLASS_DEFINED_CHECK' в заголовок 'vector', а' has_destructor' - ошибка компиляции для неопределенных классов. – pts