Как проверить на TR1 при компиляции?

Попробуйте >> в file1.txt вместо >. >> будет добавляться к файлу в отличие от >, перезаписывая весь файл. Попробуйте -

    wc -l < file1.txt >> file1.txt
5
задан Jeffrey Bosboom 5 November 2016 в 05:07
поделиться

4 ответа

При использовании каких-либо инструментов конфигурирования как автоинструменты, можно попытаться записать тест как:

AC_CHECK_HEADER(tr1/unordered_map,[AC_DEFINE([HAVE_TR1],[],["Have tr1"])],[])
AC_CHECK_HEADER(unordered_map,[AC_DEFINE([HAVE_CXX0X],[],["Have C++0x"])],[])

И затем используйте, они определяют в Вашем коде.

Вообще говоря, __cplusplus макрос должен дать Вам число стандартной версии, но нет никакого компилятора, который дает Вам 100%-ю стандартную реализацию... Таким образом запись настраивает макросы.

К сожалению, это - только довольно надежный способ проверить такие вещи, если Вы не хотите записать 1001 #ifdef для каждого компилятора (что повышение делает),

И затем:

#include "config.h"
#ifdef  HAVE_CXX0X
#  include <unordered_map>
   typedef std::unordered_map<foo,bar> my_map;
#elif HAVE_TR1
#  include <tr1/unordered_map>
   typedef std::tr1::unordered_map<foo,bar> my_map;
#else
#  include <map>
   typedef std::map<foo,bar> my_map;
#endif
2
ответ дан 14 December 2019 в 09:00
поделиться

GCC-4.3 имеет:

#define __GXX_EXPERIMENTAL_CXX0X__ 1

Но, это, очевидно, не стандартно.

2
ответ дан 14 December 2019 в 09:00
поделиться

Посмотрите ISO C++ (WG21) бумага N1575. Данная статья была отброшена от TR1 без замены. Таким образом, нет никакого официального способа обнаружить TR1.

2
ответ дан 14 December 2019 в 09:00
поделиться

Одна библиотека я имею дело с потребностями использовать некоторые классы, которые были добавлены к TR1 от Повышения, предпочтя TR1 при наличии. Решение (являющийся Основанной на Unix библиотекой) состоит в том, чтобы пихнуть проверки в настраивать сценарий.

Так, другими словами, нет, ничто портативное, что я знаю о. Тем не менее, если Вы находитесь на Unix, настраивать работа проверок сценария достаточно хорошо.

1
ответ дан 14 December 2019 в 09:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: