Должен ли std::get(tuple) работать для вывода zip_view?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Должен ли std::get(tuple) работать для вывода zip_view?

Сообщение Anonymous »

Коротко: std::get('tuple-like') не работает при использовании библиотеки диапазонов в MSVC, и мне интересно, что ожидается в соответствии со стандартом C++.
Мне не удается правильно скомпилировать приведенный ниже код в MSVC 19.40. Однако он работает как с gcc, так и с clang, и мне еще предстоит найти информацию, подтверждающую поведение MSVC.
пример кода

Код: Выделить всё

#include 
#include 
#include 

int main() {
using namespace std::views;

char foo{};

std::ranges::for_each(zip(iota(0, 2) | transform([&](int i) -> char& { return foo; })),
[] (auto t) { auto bar = std::get(t); });

return 0;
}
сообщение об ошибке

Код: Выделить всё

error C2039: '_Ttype': is not a member of 'std::_Tuple_element'
with
[
_Ty=char &
]
Должен ли я ожидать, что std::get будет работать здесь, или я что-то упускаю?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ews-output
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»