Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/23: Рейтинг темы: голосов - 23, средняя оценка - 4.70
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
1

M_PI + cmath в Visual Studio

06.05.2013, 15:02. Просмотров 4338. Ответов 6
Метки нет (Все метки)

Всем привет.
Почему в VS (проверено на 2010 и 2012) при использовании cmath нельзя достучаться до константы M_PI, а при использовании math.h - можно?
C++
1
2
3
4
5
6
7
8
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h> // находит M_PI
// #include <cmath> // не находит M_PI
int main()
{
   std::cout << M_PI << std::endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2013, 15:02
Ответы с готовыми решениями:

В коде возникли ошибки при переходе с Visual studio 2013 на Visual studio 2017
Добрый день, решил попробовать поменять свою 2013 студию на 2017 и заметил...

Имеются ли отличия в компиляторах у сред разработки Visual Studio 2006 и Visual Studio 2015 ?
скажите а где найти среду 2006 года? или можно использовать 2015 год?

Visual Studio Team Foundation Serverl или Visual Studio Professional
Visual Studio Team Foundation Server 2010 Кто пользовался Visual Studio Team...

Какую среду программирования лучше выбрать для обучения языку C++ ? Visual Studio,Visual Basic или Visual C++?
И напишите,чем рекомендуемая вами среда программирования лучше других?...

Написать программу. Задания нужно выполнять на языке Visual C++ в среде Microsoft Visual Studio 2008
Можете написать программу? Задание по номером 3.24 (2 рисунок).

6
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
06.05.2013, 15:33 2
А если попробовать define до include iostream? Может быть, iostream подключает cmath до define...
1
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
06.05.2013, 15:36  [ТС] 3
Somebody, точняк. Вот ведь прикол. Понапихали хедеров одних в другие
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
08.05.2013, 23:47 4
Цитата Сообщение от Tulosba Посмотреть сообщение
Понапихали хедеров одних в другие
В принципе все правильно. Зачастую хедеры друг друга цепляют. Это нормально.
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
08.05.2013, 23:56  [ТС] 5
Цитата Сообщение от go Посмотреть сообщение
В принципе все правильно. Зачастую хедеры друг друга цепляют. Это нормально.
Где-то недавно уже читал про это. Вроде как стандарт не регламентирует какие хедеры имеют право каких включать. Остается только догадываться какой производитель компилятора какую матрешку соберет.
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
13.05.2013, 18:57 6
Цитата Сообщение от Tulosba Посмотреть сообщение
Остается только догадываться какой производитель компилятора какую матрешку соберет.
На самом деле об этом задумываться не приходится. Достаточно знать, в каком заголовочном файле реально объявлен используемый символ, и явно подключать этот файл, не уповая на то, что разработчики используемой реализации стандартной библиотеки уже подключили его куда-то ещё. Я стараюсь делать так всегда, поэтому у меня даже в небольших модулях зачастую 10-20 строк уходит под инклуды.
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
13.05.2013, 21:22  [ТС] 7
silent_1991, с одной стороны, не каждый проект будет портироваться на другие системы и даже собираться другим компилятором, и беспокоиться о неподключенных вручную хедерах, если все и так работает - это лишние телодвижения. С другой стороны, даже подключая все хедеры как надо, проблему, описанную в топике, не решить, если не указать нужные дефайны перед всеми хедерами. Ибо не ясно кто кого может включать.
0
13.05.2013, 21:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 21:22

Visual C++.NET и Visual Studio это одно и то же?
Доброго времени суток, давно хотел узнать но так точно и не узнал. Вопрос вот в...

Перевод с RAD Studio в Visual studio
Помогите пожалуйста, перевести код с одной среды разработки на другую, очень...

Несовместимость visual c++ 6.0 и visual studio 2008
почему правильно гаписанная программа в visual c++ 6.0 не работает в visual...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru