::feof(fp); - не понимает
От: overt Ниоткуда  
Дата: 22.06.08 07:50
Оценка:
Класс обертка для 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 '::'

(MS VS 7.1/8.0)
::feof
Re: ::feof(fp); - не понимает
От: Were  
Дата: 22.06.08 08:00
Оценка:
Здравствуйте, overt, Вы писали:

O>Класс обертка для FILE*. Имена методов класса идентичны библиотечным функциям, поэтому внутри класса использую :: перед библиотечными именами. Все Ок, кроме ::feof(fp) — компилятор ругается. В чем моя ошибка?


Может в выборе компилятора? ) В MSVS 8.0 не ругается...
Re: ::feof(fp); - не понимает
От: Pretender  
Дата: 22.06.08 08:06
Оценка:
Здравствуйте, overt, Вы писали:

O>

O>error C2059: syntax error : '::'
O>error C2589: '(' : illegal token on right side of '::'


Попробую угадать: feof — макрос?
Re[2]: ::feof(fp); - не понимает
От: overt Ниоткуда  
Дата: 22.06.08 08:21
Оценка:
P>Попробую угадать: feof — макрос?

если верно понял, то да, в stdio.h есть и макрос и ф-ия, но для чего это разнообразие?

у себя в коде добавил (так правильно?)
#undef  feof

работает теперь
(MS VS 7.1/8.0)
Re[3]: ::feof(fp); - не понимает
От: Pretender  
Дата: 22.06.08 08:26
Оценка: 2 (1)
Здравствуйте, 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);
}
Re[4]: ::feof(fp); - не понимает
От: overt Ниоткуда  
Дата: 22.06.08 08:37
Оценка:
спасибо Pretender
(MS VS 7.1/8.0)
Re[5]: ::feof(fp); - не понимает
От: Pretender  
Дата: 22.06.08 08:43
Оценка: +1
Здравствуйте, overt, Вы писали:

O>спасибо Pretender


Спасибки там справа вверху. -__^
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.