Вопросы по теме 'stdtuple'

Как вы можете перебирать элементы std::tuple?
Как я могу перебрать кортеж (используя С++ 11)? Я пробовал следующее: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); но это не работает: Ошибка 1: извините, не реализовано: не...
90682 просмотров

Как получить N-й тип из кортежа?
Я хочу создать шаблон, в котором я могу ввести индекс, и он даст мне тип по этому индексу. Я знаю, что могу сделать это с помощью decltype(std::get<N>(tup)) , но я хотел бы реализовать это сам. Например, я хотел бы сделать это, typename...
5647 просмотров
schedule 04.04.2023

Как проверить кортеж С++ 11 во время выполнения для возможного применения функции
У меня есть функция, применяющая данную функцию f к заданному std::tuple t , как показано ниже, в которой, если t имеет неправильный размер, генерируется сообщение об ошибке времени компиляции. Мне было интересно, можно ли написать это...
536 просмотров
schedule 30.06.2023

сопоставить перегруженную функцию С++ с гетерогенным кортежем?
Можно ли в C++ сопоставить перегруженную функцию с гетерогенным кортежем? Например: double f(dobule); size_t f(std::string); auto t = std::make_tuple(3.14, "a string"); // should be the same as std::make_tuple(f(std::get<0>(t)),...
396 просмотров
schedule 25.04.2023

Кортеж указателей на функции, возвращающие ссылку на вариативные типы
Пусть вас не пугает название вопроса! Я считаю, что это просто вопрос синтаксиса. у меня есть этот класс template<typename ... Types> class test_class{ public: template<typename T> T &get(){return...
910 просмотров
schedule 16.12.2023

Получение значений сохраненного кортежа с помощью автоматического C++
Если я храню кортеж в классе как таковой: class BaseA { } //So that I can store A in a class template <typename Args...> class A : public BaseA { public: //I'm omitting the constructors private: std::tuple<Args...> storedTup;...
83 просмотров
schedule 18.05.2024

Преобразование из std::tuple‹T, U› в std::pair‹T, U›
И GCC, и Clang (или, скорее, libstdc++ и libc++ соответственно) согласны с тем, что std::is_convertible<std::pair<int, int>, std::tuple<int, int>>::value является true , чего и следовало ожидать, поскольку std::tuple<T,...
58 просмотров
schedule 03.05.2023

Почему стандарт позволяет назначать кортеж ссылок rvalue кортежем ссылок lvalue?
Похоже, что std::tuple , содержащий одну или несколько ссылок, имеет неожиданное поведение в отношении построения и назначения (особенно построения копирования/перемещения и назначения копирования/перемещения). Это отличается от поведения как...
2134 просмотров
schedule 21.01.2024

ошибка: нельзя передавать объекты нетривиально копируемого типа через ``
У меня есть класс unit , который имеет свойства std::is_trivial<unit>::value; // true std::is_trivially_copyable<unit>::value; // true (on compilers which have this trait) Я хотел бы передать векторы unit в виде кортежа,...
3033 просмотров
schedule 28.07.2023

Идеальная пара
Вдохновленный этим вопросом , я задумался о том, что является идеальным std::pair должно выглядеть. Класс сжатой пары (например, boost ) предоставляет пару, размер которой уменьшается, когда один из ее типов является пустым классом. Для сжатой...
404 просмотров
schedule 19.07.2022

С ++ std :: порядок уничтожения кортежей
Есть ли правило, в котором говорится, в каком порядке уничтожаются члены std :: tuple? Например, если Function1 возвращает std::tuple<std::unique_ptr<ClassA>, std::unique_ptr<ClassB>> в Function2 , то могу ли я быть уверен,...
3466 просмотров
schedule 07.07.2022

Доступ к кортежу кортежей указателей и мьютексов потокобезопасный
Учитывая std::tuple , using Tuple1 = std::tuple<Foo1*, Bar1*, std::shared_ptr<std::mutex>>; using Tuple2 = std::tuple<Foo2*, Bar2*, std::shared_ptr<std::mutex>>; std::tuple<Tuple1, Tuple2> tuple; И функция,...
329 просмотров

C++11 как реализовать `std::string ToString(std::tuple‹Args› &t)`?
Мне нужна очень удобная функция ToString для многих типов, включая функцию std::tuple . Функция такая: template <typename T> inline std::string ToString(const T &t) { std::stringstream ss; ss << t; return...
650 просмотров
schedule 16.01.2023

C++: преобразовать кортеж в тип T
Я пытаюсь создать класс с именем tuple_cnv с (неявным) оператором преобразования для построения любого объекта из кортежа (например, функция C++17 std::make_from_tuple ), но рекурсивного характера таким образом, что если кортеж состоит из других...
605 просмотров
schedule 14.05.2023

инициализация std::tuple, какие конструкторы элементов требуют объекта из другого std::tuple
рассмотрим следующий код template<typename T> struct B; template<typename T> struct C; template<typename...As> struct A { typedef std::tuple< B<As> ...> Bs; typedef std::tuple< C< B<As> >...>...
23 просмотров

Получить первый элемент std::tuple, удовлетворяющий трейту
Я использую С++17. Я хотел бы получить элемент кортежа, который удовлетворяет некоторой черте типа. Было бы замечательно, если бы трейт можно было предоставить в общем виде, но я бы удовлетворился конкретной функцией для определенного трейта....
533 просмотров

std::tuple эквивалент второго члена std::pair?
Я преобразую эту функцию для использования std::tuple , у которой нет членов first и second , таких как std:pair . std::type_index argumentType(const std::string& name) const { return std::find_if(args_.begin(), args_.end(),...
81 просмотров
schedule 03.10.2022

как перенаправить типы кортежа для специализации другого шаблона?
в настоящее время я работаю над динамической контейнерной структурой, которая представляет одно значение модуля или имеет вектор указателей с тем же типом контейнера. Контейнер имеет интерфейс optional<T> expect_value<T>() 。 Для типов...
511 просмотров
schedule 22.05.2022

Хранение различных типов std::tuple в массиве, векторе или?
Есть ли способ в последней версии С++ (я думаю, 17 или 20) хранить различные виды кортежей в std::array или std::vector или другом встроенном типе данных? Например, может быть что-то вроде -> struct bunchOfTuples { std::tuple<float, float,...
511 просмотров
schedule 18.05.2023

Как применить функцию constexpr к каждому элементу в std::tuple?
У меня есть constexpr auto my_tuple = std::make_tuple(a, b, c, d, e); . Теперь я хочу применить функцию constexpr к каждому из его элементов. Я думал, что могу сделать это так: template <typename... Types> void constexpr...
96 просмотров
schedule 21.06.2022