Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
875 / 461 / 91
Регистрация: 10.06.2014
Сообщений: 2,669
1

Создание аналога std::tie. Есть подозрения на UB

07.07.2017, 19:01. Показов 1571. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В учебных целях решил написать аналог std::tie, вроде работает, но есть подозрения на UB.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//g++  5.4.0
 
#include <iostream>
#include <tuple>
 
template<typename ...Args>
decltype(auto) myTie(Args& ... args) 
{
    return std::tuple<Args&...>(args...);
}
 
int main()
{
    int a;std::string s;
    myTie(a,s) = std::make_tuple(2,"ok");
    std::cout << s;
}
http://rextester.com/OLLZH80332

При возврате кортежа из функции насколько я понимаю сработает конструктор перемещения.
Но в данном случае в наличии кортежа имеется простой тип int, соответственно по идее он должен быть скопирован а не перемещён когда сработает конструктор перемещения возвращаемого кортежа...

И как вообще ссылки могут быть перемещены?

Поэтому думается мне что тут может быть UB... Нужна подсказка знатоков
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2017, 19:01
Ответы с готовыми решениями:

QString - удаление последнего элемента. Неужели нет аналога std::string pop_back ?
я нуб :)

Есть подозрения на вирусы
Скачал программу Oscar for a4tech а теперь не могу от нее избавится, есть ну ооочень большие...

Есть подозрения в махинации
Я так не думаю...

Есть подозрения на наличие вирусов
На данный момент в установке и удалении программ нету подозрительных ПО,но перед этим я удалил...

3
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
07.07.2017, 19:06 2
Цитата Сообщение от Undisputed Посмотреть сообщение
decltype(auto)
Просто auto
1
875 / 461 / 91
Регистрация: 10.06.2014
Сообщений: 2,669
07.07.2017, 19:10  [ТС] 3
Croessmah,
А в каких случаях надо использовать просто auto а в каких вместе с decltype? Интересно ещё почему вы сделали это замечание, что бы упростить код или по другой причине?

Помню было отличие в некоторых случаях тип помоему выводится по разному, у Мейерса должно было быть про это только книги под рукой нет...
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
07.07.2017, 19:51 4
https://habrahabr.ru/post/206458/
Миниатюры
Создание аналога std::tie. Есть подозрения на UB  
1
07.07.2017, 19:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2017, 19:51
Помогаю со студенческими работами здесь

Есть подозрения о плохих ссылках
Есть подозрение, что Яндекс выкидывает из индекса страницы сайта (может даже все, кроме главной),...

Есть подозрения на серьезный вирус
Всем привет! Возникают проблемы с компом: упала производительность, часто глючит. Самое странное,...

Есть подозрения на серьезный вирус
Всем привет! Возникают проблемы с компом: упала производительность, часто глючит. Самое...

Есть подозрения, что поймал вирус
У меня есть подозрение что поймал вирус. Испытал все антивирусники никак выковырять не могу его. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru