fstream останавливает работу math.h

Возможный дубликат:
Ошибка компиляции cmath при компиляции старого кода C ++ в VS2010
Сбой компиляции в VS2010 для программ на C ++, хорошо собираемых в Linux

Я создаю программу на C ++, в которой мне нужно прочитать текстовый файл. Я включил файл заголовка fstream, который позволяет мне открыть файл, но, добавив include, теперь я получаю бесчисленные ошибки, связанные с math.h функции. Примеры:

1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(19): error C2061: syntax error : identifier 'acosf'
1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(19): error C2059: syntax error : ';'

Есть ли способ включить функции чтения текстовых файлов fstream без ущерба для функций math.h? И почему все-таки возникает этот конфликт?

/ Изменить /

Кажется, ошибки находятся в стандартном заголовочном файле cmath. Это не то, к чему у меня есть доступ, но для завершения вот код, который вызывает ошибки:

using _CSTD acosf; using _CSTD asinf;
using _CSTD atanf; using _CSTD atan2f; using _CSTD ceilf;

(и так далее)


person CaptainProg    schedule 22.11.2011    source источник
comment
Было бы неплохо увидеть код, вызывающий эту ошибку.   -  person Patrick B.    schedule 22.11.2011
comment
Опубликуйте код этих строк, чтобы убедиться, что нет синтаксических ошибок (дерьмо случается).   -  person Grambot    schedule 22.11.2011
comment
Кроме того, возможно, this и это полезно.   -  person Alok Save    schedule 22.11.2011
comment
@CaptainProg: в большинстве случаев ошибки в заголовочном файле вызваны неправильными вещами в файле, который их включает. Вот мы и просим код.   -  person Patrick B.    schedule 22.11.2011


Ответы (1)


Компиляция и запуск:

#include <fstream>
#include <math.h>

int main()
{
    std::ofstream f("test.txt", std::ios::out);
    f << std::acos((float)0);
    return 0;
}

В math.h уже есть перегруженные определения для acos (double), acos (float), acos (long double), нет необходимости использовать acosf.

Где-то в вашем коде есть ошибка.

person Ian Medeiros    schedule 22.11.2011