std::chrono
должен поддерживаться в g++ 4.8.*
. Однако, когда я пытаюсь скомпилировать его с помощью g++ 4.8.3
, он не может найти различные объявления. Я, конечно, пользуюсь -std=c++11
.g ++ 4.8. * Std :: chrono Undeclared
Например, это вызов (из сгенерированного файла, вот почему -std
появляется дважды):
g++-4.8 -g -msse2 -m64 <defines> <warnings> -std=c++11 -fexceptions -std=c++11 <includes'-path> -c <source-file.cpp> -o <out-path>
Производит эту ошибку:
<source-file, line>: error: ‘std::chrono::monotonic_clock’ has not been declared
Я не смог найти verymuch что не была сразу же версией компилятора или отсутствовала -std=c++11
. По логике от this мне больше не нужно ничего.
Вопрос: что случилось, как я могу это исправить?
Технически его существование зависит от реализации. Код, например, компилируется в MSVC. Благодарю. – imallett
@imallett Стандарт позволяет реализациям добавлять дополнительные имена в пространство имен 'std' и вложенные пространства имен, поэтому в какой-то реализации может существовать' std :: chrono :: i_like_burritos'. Но нет требования, чтобы пространство имен 'chrono' имело член с именем' i_like_burritos' (или 'monotonic_clock') в C++ 11. (Или C++ 14, что позор, потому что мне действительно нравятся burritos.) – Casey
Наверняка. Я просто говорю, что 'std :: chrono :: monotonic_clock' - буррито. – imallett