Есть ли выражение выражения, эквивалентное в Visual Studio? - PullRequest
10 голосов
/ 16 ноября 2011

GCC имеет функцию выражения статистики, которая позволяет макросу быть определенным как:

#define maxint(a,b) \
   ({int _a = (a), _b = (b); _a > _b ? _a : _b; })

Это недопустимо в Visual Studio.

Есть ли эквивалентная функция в Microsoft Visual Studio? (Я знаю, я бы лучше использовал GCC. Но мне просто любопытно).

Или нам просто нужно прибегнуть к встроенным функциям?

Ответы [ 2 ]

7 голосов
/ 16 ноября 2011

В компиляторе MS нет эквивалента этому нестандартному расширению языка GCC.

0 голосов
/ 11 июля 2014

Если бы вы использовали C ++, я думаю, что можно использовать лямбда-функцию:

#define maxint(a,b) \
   ([=] () {int _a = (a), _b = (b); return _a > _b ? _a : _b; }())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...