Информация об изменениях

Сообщение Re: Эмулирую tuples такие, какими они сделаны в python, матл от 24.12.2019 20:04

Изменено 24.12.2019 23:20 rg45

Re: Эмулирую tuples такие, какими они сделаны в python, матл
Здравствуйте, alexanderfedin, Вы писали:

A>С++11, ибо цель — библиотека поддержки транслятора с матлаба в CUDA C++.

A>Здесь можно попробовать: https://onlinegdb.com/H1AnA0k18
A>Не могу добиться того, чтобы код работал для результатов возврата функции.
A>Что-то у меня плохо с пониманием lvalue/rvalue.

Ага, плохо. Во фрагменте ниже функция to_tuple_works возвращает тупл ссылок: tuple <char&, int&, float&>.

    char ch = 0;
    int ii = 123;
    float ff = 2.7;
    static_assert(
        std::is_same<
            tuple<char, int, float>,
            decltype(to_tuple_works(ch, ii, ff))>::value,
        "fails"
    );


Ты бы разобрался в базовых вещах для начала, потом бы уже эмулировал.
Re: Эмулирую tuples такие, какими они сделаны в python, матл
Здравствуйте, alexanderfedin, Вы писали:

A>С++11, ибо цель — библиотека поддержки транслятора с матлаба в CUDA C++.

A>Здесь можно попробовать: https://onlinegdb.com/H1AnA0k18
A>Не могу добиться того, чтобы код работал для результатов возврата функции.
A>Что-то у меня плохо с пониманием lvalue/rvalue.

Ага, плохо. Во фрагменте ниже функция to_tuple_works возвращает тупл ссылок: tuple <char&, int&, float&>.

    template <typename... T>
    tuple<T...> to_tuple_works(T&& ...a)
    {
        return tuple<T...>(std::forward<T>(a)...);
    }
    // . . .
    char ch = 0;
    int ii = 123;
    float ff = 2.7;
    static_assert(
        std::is_same<
            tuple<char, int, float>,
            decltype(to_tuple_works(ch, ii, ff))>::value,
        "fails"
    );


Ты бы разобрался в базовых вещах для начала, потом бы уже эмулировал.