Описание тега stdtuple

Используйте этот тег для вопросов о шаблоне стандартной библиотеки C++ std::tuple. Он представляет собой упорядоченную, разнородную последовательность объектов. Также добавьте тег [C++] при использовании этого тега.
3 ответа

Алиасинг шаблонной функции std

Мне нужен псевдоним std::get функция для того, чтобы улучшить читаемость в моем коде. К сожалению, я получил ошибку во время компиляции get<0> in namespace ‘std’ does not name a type, using эквивалентно typedef поэтому ему нужны типы для работ…
15 янв '17 в 10:57
1 ответ

Именованное требование для std::tuple-like?

Я делал общий алгоритм хеширования для std::tupleи понял, что смогу заставить его работать на std::pair а также std::array а также, как эти три класса реализуют std::tuple_size а также std::get, Это "стандартизировано" где-нибудь? Есть ли "std::allo…
08 янв '19 в 21:50
1 ответ

Не удается инициализировать const int из распакованного кортежа

Вопрос действительно прост, почему этот код не работает: #include <tuple> int main( int argc, char* argv[]) { const int a,b = std::tie(std::make_pair(1,2)); return EXIT_SUCCESS; } G ++ дает мне эту ошибку: ./test.cpp: В функции 'int main(int, …
25 окт '17 в 12:00
2 ответа

Как сравнить кортежи разной длины?

Я хотел бы написать компаратор, который сравнивает кортежи разной длины, но имеет одинаковый "префикс". Рассмотрим следующий случай, у меня есть два кортежа. auto t1 = std::make_tuple(10, "Test1"); auto t2 = std::make_tuple(10, "Test", 3.14); Я хоте…
22 фев '16 в 20:30
2 ответа

C++: преобразовать кортеж в тип T

Я пытаюсь сделать класс под названием tuple_cnv с (неявным) оператором преобразования для создания любого объекта из кортежа (например, C++17 std::make_from_tuple функции), но рекурсивного характера таким образом, что, если кортеж состоит из других …
12 сен '17 в 20:08
1 ответ

Разрешены ли неявные преобразования с помощью std::tie?

В C++11 разрешены неявные преобразования с помощью std::tie? Следующий код компилируется и запускается, но я не уверен, что именно происходит за кулисами или это безопасно. std::tuple<float,float> foo() { return std::make_tuple(0,0); } double …
26 окт '16 в 01:38
2 ответа

Как создать кортеж оболочки из кортежа реализатора?

У меня есть несколько классов-реализаторов (impls) и несколько оболочек для пользователя, реализованных на C++. Я хочу хранить impls и оболочки в двух разных кортежах, чтобы я мог инициализировать свои impls одним выделением. (У меня есть и другие п…
29 ноя '12 в 09:53
3 ответа

Получить первый элемент std::tuple, удовлетворяющий признаку

Я использую C++17. Я хотел бы получить элемент кортежа, который удовлетворяет некоторой характеристике типа. Было бы удивительно, если бы черта могла быть предоставлена ​​в общем, но я был бы удовлетворен определенной функцией для определенной черты…
2 ответа

Нужны ли все конструкторы std::tuple?

std::tuple содержит, среди прочего, следующие конструкторы: explicit tuple( const Types&... args ); template< class... UTypes > explicit tuple( UTypes&&... args ); Оба имеют эквивалентные описания в том, что они инициализируют кажд…
18 авг '13 в 15:23
2 ответа

Понимание segfault со статическим размером массива std::tuple в классе

У меня есть класс, где я хочу хранить три точки данных для каждого пикселя в изображении. Я подумал, что std::tuple будет хорошим способом сделать это так: class CameraManager { private: static const int width_ = 700; static const int height_ = 574;…
16 окт '14 в 08:59
2 ответа

std::tuple и переместить семантику

Интересно о двух вещах.1. движется std::tuple стоит реализовать? Например для std::tuple<int, int, int> мы что-нибудь получим? Будет ли это быстрее, чем копирование или передача по ссылке?2. В приведенном ниже примере, есть ли реальная разница…
02 июл '18 в 21:09
2 ответа

Очистить динамически генерируемые вложенные кортежи

Я реализовал алгоритм, чтобы сделать декартово произведение произвольно вложенных диктов в Python. Поля, находящиеся на корневом уровне, необходимо реплицировать в несколько строк, поскольку в него могут быть также вложены массивы. Я использовал ite…
24 апр '16 в 20:13
2 ответа

Эквивалент 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(), [&name](std::pair&…
28 ноя '18 в 15:22
2 ответа

Можно ли написать единственную именованную функцию доступа как для постоянной ссылки, так и для записи ссылки на элементы кортежа?

У меня есть некоторая иерархия std::tuple. Я хотел бы написать некоторые функции доступа для всех этих кортежей, чтобы результирующий код был более читабельным. Поэтому вместо того, чтобы писать: std::get<2>(std::get<1>(std::get<0>…
10 июл '18 в 14:15
1 ответ

Возможность построить элементы std::tuple позже с помощью распределителя?

Насколько я понял, одной из причин использования распределителей C++ для моего собственного контейнера было бы то, что я могу разделять распределение и конструирование. Теперь мне интересно, возможно ли это для std:: tuples следующим образом: Каждый…
23 дек '13 в 22:40
3 ответа

Конкатенация кортежей как типов

Я пытаюсь попрактиковаться в шаблонном программировании. Может быть, есть стандартный способ сделать это, и я был бы благодарен за такие ответы, но моя главная цель - попрактиковаться в методах шаблонного программирования, поэтому я попытался реализ…
1 ответ

Сравнение std::tuple (или std::pair) пользовательских типов, которые имеют альтернативные порядки. Можно ли подключить пользовательскую функцию "меньше / меньше"?

Эта проблема У меня есть пользовательский тип A у кого естественный порядок (имеющий operator<) и несколько альтернативных заказов (с учетом регистра, без учета регистра и т. д.). Теперь у меня есть std::pair (или же std::tuple) состоящий (один и…
2 ответа

Создание функции проекции C++ std::tuple

Я ищу функцию проекции для std::tuple, Т.е. функция получает список целых чисел в качестве параметров шаблона и возвращает кортеж, значения которого имеют только эти индексы. Например, рассмотрим у меня есть кортеж tuple<int,String,char,float>…
12 май '14 в 15:08
1 ответ

Статическая STL карта int и кортеж возвращает 0

Создание календаря для моего класса C++. У меня есть служебный класс статических методов и статических контейнеров. Наиболее заметно: Dictionary.h static std::map<int,std::tuple<std::string,int>>months; static std::map<int,std::tuple&…
03 апр '17 в 01:54
2 ответа

Зацикливание шаблона через кортеж

Я играю с вариадическими шаблонами и сейчас пытаюсь реализовать operator<< для кортежа. Я пробовал следующий код, но он не компилируется (GCC 4.9 с -std= C++11). template<int I, typename ... Tlist> void print(ostream& s, tuple<Tli…
25 мар '15 в 18:44