[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: g++ из stable



On Wed, 4 Jun 2003 spied@yandex.ru wrote:

> Здравствуйте.
>
> у меня стоят gcc и g++ версии 2.95.4-14
>
> почему-то в g++ не обрабатываются макросы с переменным числом
> параметров
>
> вот пример кода:
> #define a(aaa,...) printf(aaa, __VA_ARGS__)
>
> int main(void) {
>  return a("\n%d\n",4);
> }
>
> этот код нормально комплируется gcc и третьей версией g++, однако g++
> 2.95 выдает ошибку:
> a.c:1: badly punctuated parameter list in `#define'
>
> переход на новую версию g++ нежелателен (так как связан с
> перекомпиляцией динамических библиотек).
>
> можно ли заставить g++ этой версии нормально отрабатывать iso-версию
> макросов с переменным числом параметров? насчет gcc-версии я в курсе,
> но не хочется переделывать программу и терять в портабельности.
>
>

  Как вариант, - вызывать препроцессор из новой версии (3.0), а уж
  потом компилятор из старой (2.95).

  А что, динамичиские библиотеки сделанные 2.95 для 3.0 не годятся?
  Мне казалось, что бинарная совместимость должна выполнятся.

 Успехов.
 Юра.



Reply to: