Это может быть связано с тем, как правильно направить структурированные аргументы привязки на макросе, но я чувствую, что реальная проблема не такая же, поэтому может иметь другое решение. < /p>
Я хочу Чтобы пройти лямбду в качестве генератора имен внутри instantiate_test_test_suite_p. Это хорошо работает, пока я не попытаюсь использовать структурированные привязки, чья запятая заставляет препроцессор думать, что оно разделяется на отдельные аргументы. < /P>
using param = std::tuple;
// This works
INSTANTIATE_TEST_SUITE_P(
instance, suite, cases,
[](const testing::TestParamInfo
& info) {
return std::string(std::get(info.param)
+ "_to_" + std::string(std::get(info.param));
}
);
// This also works
static constexpr auto name = [](const testing::TestParamInfo& info) {
const auto [a, b] = info.param;
return std::string(a) + "_to_" + std::to_string(b);
};
INSTANTIATE_TEST_SUITE_P(
instance, suite, cases, name
);
// But this does not compile
INSTANTIATE_TEST_SUITE_P(
instance, suite, cases,
[](const testing::TestParamInfo& info) {
const auto [a, b] = info.param;
return std::string(a) + "_to_" + std::to_string(b);
}
);
< /code>
Я знаю, что в некоторых случаях, например, шаблонные аргументы, запятая может быть защищена от препроцессора дополнительным набором скобок. Можно ли сделать то же самое здесь? Я пытался разместить скобки вокруг структурированного связывания, но оно тоже не компилировало.
Подробнее здесь: https://stackoverflow.com/questions/794 ... macro-call
Лямбда со структурированными привязками внутри макроса вызова ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1739526755
Anonymous
Это может быть связано с тем, как правильно направить структурированные аргументы привязки на макросе, но я чувствую, что реальная проблема не такая же, поэтому может иметь другое решение. < /p>
Я хочу Чтобы пройти лямбду в качестве генератора имен внутри instantiate_test_test_suite_p. Это хорошо работает, пока я не попытаюсь использовать структурированные привязки, чья запятая заставляет препроцессор думать, что оно разделяется на отдельные аргументы. < /P>
using param = std::tuple;
// This works
INSTANTIATE_TEST_SUITE_P(
instance, suite, cases,
[](const testing::TestParamInfo
& info) {
return std::string(std::get(info.param)
+ "_to_" + std::string(std::get(info.param));
}
);
// This also works
static constexpr auto name = [](const testing::TestParamInfo& info) {
const auto [a, b] = info.param;
return std::string(a) + "_to_" + std::to_string(b);
};
INSTANTIATE_TEST_SUITE_P(
instance, suite, cases, name
);
// But this does not compile
INSTANTIATE_TEST_SUITE_P(
instance, suite, cases,
[](const testing::TestParamInfo& info) {
const auto [a, b] = info.param;
return std::string(a) + "_to_" + std::to_string(b);
}
);
< /code>
Я знаю, что в некоторых случаях, например, шаблонные аргументы, запятая может быть защищена от препроцессора дополнительным набором скобок. Можно ли сделать то же самое здесь? Я пытался разместить скобки вокруг структурированного связывания, но оно тоже не компилировало.
Подробнее здесь: [url]https://stackoverflow.com/questions/79438894/lambda-with-structured-bindings-inside-macro-call[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия