Класс обертка для FILE*. Имена методов класса идентичны библиотечным функциям, поэтому внутри класса использую :: перед библиотечными именами. Все Ок, кроме ::feof(fp) — компилятор ругается. В чем моя ошибка?
Для примера:
#include <stdio.h>
void main( )
{
FILE* fp = fopen("test.txt", "w");
//printf("%d", ::fflush(fp)); // - нормально
printf("%d", ::feof(fp)); // - ругается
}
error C2059: syntax error : '::'
error C2589: '(' : illegal token on right side of '::'
Здравствуйте, overt, Вы писали:
O>O>error C2059: syntax error : '::'
O>error C2589: '(' : illegal token on right side of '::'
Попробую угадать: feof — макрос?
P>Попробую угадать: feof — макрос?
если верно понял, то да, в stdio.h есть и макрос и ф-ия, но для чего это разнообразие?
у себя в коде добавил (так правильно?)
#undef feof
работает теперь
Здравствуйте, overt, Вы писали:
P>>Попробую угадать: feof — макрос?
O>если верно понял, то да, в stdio.h есть и макрос и ф-ия, но для чего это разнообразие?
O>у себя в коде добавил (так правильно?)
O>O>#undef feof
O>
O>работает теперь
На вопросы твои у меня ответов нет. Но я бы сделал так:
void feof_call(...)
{
feof(...);
}
void class:name::feof()
{
feof_call(m_fp);
}