__VA_ARGS__ больше одного
Есть ли простой способ узнать передали в макрос более одного аргумента или только один ?
Нужно поставить скобки вокруг если есть более одного аргумента, и не ставить если один.
A(a) => a
A(a, b) => (b, c)
Re: __VA_ARGS__ больше одного
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: __VA_ARGS__ больше одного
Здравствуйте, _NN_, Вы писали:
_NN>Нужно поставить скобки вокруг если есть более одного аргумента, и не ставить если один.
BOOST_PP_IF(BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(__VA_ARGS__), 1), MACRO_1, MACRO_2)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: __VA_ARGS__ больше одного
От:
rg45
Дата: 18.12.19 13:37
Оценка:
Здравствуйте, _NN_, Вы писали:
_NN>Нужно поставить скобки вокруг если есть более одного аргумента, и не ставить если один.
_NN>_NN>A(a) => a
_NN>A(a, b) => (b, c)
_NN>
В C++20 будет такая полезная штука, как __VA_OPT__:
#define A(...) __VA_OPT__(MY_LEFT_BRACKET) __VA_ARGS__ __VA_OPT__(MY_RIGHT_BRACKET)
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[2]: __VA_ARGS__ больше одного
Здравствуйте, rg45, Вы писали:
R>В C++20 будет такая полезная штука, как __VA_OPT__:
да, в с++20...
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: __VA_ARGS__ больше одного
Здравствуйте, rg45, Вы писали:
R>В C++20 будет такая полезная штука, как __VA_OPT__:
Мы все с нетерпением ждём, а пока нужно решать насущные проблемы
Re[3]: __VA_ARGS__ больше одного
От:
rg45
Дата: 18.12.19 13:41
Оценка:
Здравствуйте, niXman, Вы писали:
R>>В C++20 будет такая полезная штука, как __VA_OPT__:
X>да, в с++20...
А я как написал?
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[2]: __VA_ARGS__ больше одного
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, _NN_, Вы писали:
_NN>>Нужно поставить скобки вокруг если есть более одного аргумента, и не ставить если один.
X>BOOST_PP_IF(BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(__VA_ARGS__), 1), MACRO_1, MACRO_2)
Так я тоже могу, но хотелось бы решения попроще и побыстрее в скорости компиляции
Re[4]: __VA_ARGS__ больше одного
Здравствуйте, rg45, Вы писали:
R>А я как написал?
это было сожеление)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: __VA_ARGS__ больше одного
Здравствуйте, _NN_, Вы писали:
_NN>Есть ли простой способ узнать передали в макрос более одного аргумента или только один ?
https://stackoverflow.com/questions/11761703/overloading-macro-on-number-of-arguments
_NN>Нужно поставить скобки вокруг если есть более одного аргумента, и не ставить если один.
а всегда ставить нельзя?
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить