LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

Вы лучше гляньте как народ раньше кол-во аргументов считал ), более того - многие способы не подходят, тут сложный случай с запятыми в скобках, да и сам скобки. А новые фичи очень элегантно вписываются. Кстати, макрос сокращается до такого:

#define call_baz(...) \
  Baz(std::array<Foo, args_cnt(#__VA_ARGS__)>{ Foo __VA_ARGS__})

Ну не знаю, по-моему вполне симпатично, я на шаблонах писал в тысячу раз более лютый венегрет.

Исходная версия pavlick, :

Вы лучше гляньте как народ раньше кол-во аргументов считал ), более того - многие способы не подходят, тут сложный случай с запятыми в скобках, да и сам скобки. А новые фичи очень элегантно вписываются. Кстати, макрос сокращается до такого:

#define call_baz(...) \
  Baz(std::array<Foo, args_cnt(#__VA_ARGS__)>{ Foo __VA_ARGS__})

Ну не знаю, по-моему вполне симпотично, я на шаблонах писал в тысячу раз более лютый венегрет.