|
|
|
|
|
|
|
Вернуться
| 1 Вадим Дмитриевич, 10 октября 2015 г. 7:42:15 | |
Извиняюсь, вторую ссылку перепутал(с вариантом успешной компиляции). Там должно быть: http://ideone.com/P2CNle
|
|
|
| 2 Вадим Дмитриевич, 10 октября 2015 г. 7:40:10 | |
Я проверил несколько компиляторов gcc. Те, у которых версия ниже 4.9.2, ругаются на код, 4.9.2(С++ 14) - спокойно компилируют. На том же IdeOne можно выбрать С++ 5.1 и С++ 14. Совершенно одинаковый код, результаты: C++ 5.1 http://ideone.com/t5ctqh - ругается C++ 14 http://ideone.com/jxzIjP - компиляция успешна, код работает Code::Blocks с компилятором версии 4.7.1 также не компилирует. Не знаю, с чем это связано, но в С++ 14 и для компиляторов 4.9.2 такой код можно написать, а для более ранних версий - это ошибка. Также, в 4.9.2 для использования abs() достаточно подключения <iostream>'a. В старых версиях без <cmath> или <cstdlib>, std::abs() не работает. Мне кажется, 4.9.2 здесь в системе не совсем и 4.9.2 :) Может быть, инклюды остались от старых версий. По поводу <cstdlib> верно, спасибо. Но, как я и говорил выше, в новых компиляторах достаточно даже одного <iostream>.
|
|
|
| 3 Денис Розимовский, 09 октября 2015 г. 22:04:10 | |
Если подключать <cstdlib>, то можно использовать эту функцию без std. http://ideone.com/Qw0wUH Возможно дело в разных компиляторах.
|
|
|
| 4 Вадим Дмитриевич, 09 октября 2015 г. 2:57:00 | |
|
Я нашёл, где можно посмотреть сообщения компилятора системы на сайте и догадался, в чём дело - нужно использовать "std::abs()", если не прописано using namespace std; Извините, я просто только начал изучать C++. Но тогда вопрос в другом - почему мой компилятор не считает это за ошибку? Хотя, если написать "cout" вместо "std::cout" - он выбивает точно такую же ошибку, что и ваш.
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |