Прежде всего, строковый литерал не может быть назначен на char*
, поэтому вы все равно должны использовать const char*
.std::string_view
может быть лучше.
С std::tuple<char*, char*> { {"", ""}, {"abc", "cba"}, {"abcd", "dcba"} }
вы пытаетесь создать single std::tuple<char*, char*>
со списком инициализаторов для std::tuple<char*, char*>
.
Если вы хотите просто просмотреть список std::tuple
с, вы можете вручную перечислить тип вручную:
for (auto&& tup : { std::tuple<const char*, const char*>{"", ""},
std::tuple<const char*, const char*>{"abc", "cba"},
std::tuple<const char*, const char*>{"abcd", "dcba"} }) {
/* ... */
}
Где, в основном, создается std::initializer_list<std::tuple<char*, char*>>
, ипрошлоЕсли вы считаете, что это слишком уродливо, вы также можете указать тип только один раз:
for (auto&& x : std::initializer_list<std::tuple<const char*, const char*>>
{
{"a1", "a2"},
{"b1", "b2"}
}
) { /* ... */ }