Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 May 22

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
kvark
хаю хай, всем драсте, хуярил код на любимом языке и наткнулся на такую вот проблему. Интернеты говорят, что RVO это стандарт плюсов, что я и наболюдаю в gcc и clang, но vc++ совсем йобу дал.

Сделал следующий сепмл:
https://pastebin.com/rUEtGM1i

гцеце и шланг выдают:
Contructor!
Destructor!

Что, собственно и ожидается, а наш маленький уродец:
Contructor!
Destructor!
Destructor!

Так что же это, UB или как это назвать то?
Rvo с 17го стандарта
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
kvark
хаю хай, всем драсте, хуярил код на любимом языке и наткнулся на такую вот проблему. Интернеты говорят, что RVO это стандарт плюсов, что я и наболюдаю в gcc и clang, но vc++ совсем йобу дал.

Сделал следующий сепмл:
https://pastebin.com/rUEtGM1i

гцеце и шланг выдают:
Contructor!
Destructor!

Что, собственно и ожидается, а наш маленький уродец:
Contructor!
Destructor!
Destructor!

Так что же это, UB или как это назвать то?
Nrvo нет в стандарте (по поводу 20го не уверен)
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
а... спасибо.... мдэ(
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
Till Schneider
Nrvo нет в стандарте (по поводу 20го не уверен)
я почему-то долгие годы был уверен что эта штука в плюсах давно есть( как же тогда возвратить вектор без копирования? олд-скульным возвратом через параметр?
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
kvark
я почему-то долгие годы был уверен что эта штука в плюсах давно есть( как же тогда возвратить вектор без копирования? олд-скульным возвратом через параметр?
ну она давно есть в компиляторах
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
а так...смартпоинтеры
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
ссылки на thread_local static переменные
источник

k

kvark in IT KPI C/C++ ХВ (не UB)
Till Schneider
а так...смартпоинтеры
не вкусно(
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
не подскажите в чем проблема
источник

A

András in IT KPI C/C++ ХВ (не UB)
а ти підключив файл/описав функцію вище?
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
András
а ти підключив файл/описав функцію вище?
не описал
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
а может это все лучше в класс впихнуть
источник

A

András in IT KPI C/C++ ХВ (не UB)
Nikitos )
а может это все лучше в класс впихнуть
ти не можеш викликати функцію, яку ти описав після власне виклику функції
источник

A

András in IT KPI C/C++ ХВ (не UB)
типу
int x = fn();// error
int fn(){return 1;};
int y = fn();//OK
источник

В

Владислав in IT KPI C/C++ ХВ (не UB)
ребзя, подскажите в чем проблема
источник

В

Владислав in IT KPI C/C++ ХВ (не UB)
источник

A

András in IT KPI C/C++ ХВ (не UB)
Може краще просто std::sort?
источник