
Azoyan
22.06.2017
14:47:10
Да там только три поля инта

Anatoly
22.06.2017
14:48:07
и как это коррелирует с вопросом о продлении жизни временного объекта

Azoyan
22.06.2017
14:48:10
Ну я вот сейчас смотрел ассемблерный код без оптимизаций он идентичен

Alexander
22.06.2017
14:48:14

Google

Azoyan
22.06.2017
14:48:47
Я имел ввиду, что можно создать не временный объект. Это будет дешевле

Anatoly
22.06.2017
14:49:10

Berkus
22.06.2017
14:49:10

Azoyan
22.06.2017
14:52:42

Constantine
22.06.2017
14:55:27
не знаю, не бага ли это MSC, но
Some object = <expression>
не отработает, если Some(decltype(<expression>)) помечен как explicit

Berkus
22.06.2017
14:55:31
https://dl.dropboxusercontent.com/s/wblfh4pwouyybxj/2017-06-22%20at%2017.55.png сахарок-сахарок )

Constantine
22.06.2017
15:00:11


Anatoly
22.06.2017
15:26:57
здесь, мне кажется, расжевали это момент http://en.cppreference.com/w/cpp/language/copy_elision
Notes
Copy elision is the only allowed form of optimization (until C++14)one of the two allowed forms of optimization, alongside allocation elision and extension, (since C++14) that can change the observable side-effects. Because some compilers do not perform copy elision in every situation where it is allowed (e.g., in debug mode), programs that rely on the side-effects of copy/move constructors and destructors are not portable.
Except where noted above, even when copy-elision takes place and the copy-/move-constructor is not called, it still must be present and accessible (as if no optimization happened at all), otherwise the program is ill-formed.

Constantine
22.06.2017
15:29:36
действительно так, забавно
я всегда был уверен, что конструкция, похожая на присваивание в инициализации, просто воспринимается компилятором как инициализация

Александр
22.06.2017
15:32:11
https://wandbox.org/permlink/hH4Yex2ASPrzIAb0
сравните результат для C++14 и C++17

Google

Александр
22.06.2017
15:32:30
наглядно очень

Anatoly
22.06.2017
15:34:05
это был дефект компилятора, который игнорировал запрещение копирования
по-моему я в MSVC встречал это

soul.greed
22.06.2017
15:55:41
Ребята кто может помочь

Berkus
22.06.2017
15:57:05
если каждые 5-6 часов повторять эту тему будет круто

Anatoly
22.06.2017
15:57:24
тебе уже помогли, ты теперь делаешь вид, что все в порядке вещей

Lazy Ghost
22.06.2017
15:57:56
не подскажите как поменять кодировку текста в CLR?

Vitaly
22.06.2017
16:00:26

soul.greed
22.06.2017
16:02:29
Ребята у меня в коде ошибка как ее решить можно быть дело в компиляторе
?

Vlad
22.06.2017
16:02:54

Anatoly
22.06.2017
16:04:01
T c = T() - полная цепочка ctor + copyctor

Constantine
22.06.2017
16:07:51
по-моему я в MSVC встречал это
я проверил, если написать в MSC 14
struct Some {
Some() = default;
Some(Some const&) = delete;
};
void f() {
Some object = Some(); //CE
}

Anatoly
22.06.2017
16:08:20
по-моему это было VS 2010
значит починили

Constantine
22.06.2017
16:08:39
ну copy elision возврата функции работал еще в VS 2003
у нас на это был тест и жесткая завязка

Anatoly
22.06.2017
16:10:19
я не о работе copy ellision, а о детекте отсутствия копирующего конструктора

Google

Anatoly
22.06.2017
16:10:32
в этом был дефект

Constantine
22.06.2017
16:10:34
а, это лень проверять)
не очевидно, почему эта конструкция не признается равнозначной вызову конструктора с точностью до explicit
как я понимаю, проверка делается на существование copy или move конструктора
после чего он не вызывается)

Anatoly
22.06.2017
16:12:28
да
поскольку если бы не было copy ellission была бы полная цепочки - дефолтный конструктор + конструктор копирования

Constantine
22.06.2017
16:14:17

Anatoly
22.06.2017
16:14:18
ну или move конструктор

Constantine
22.06.2017
16:15:25
т.е. обязательный copy elision без проверок

Berkus
22.06.2017
16:15:30

Group Butler [beta]
22.06.2017
16:15:31
soul.greed has been warned (1/5)

Danila
22.06.2017
16:18:22

Дед Пегас
22.06.2017
16:19:03
Да он норкмоман.

Владислав
22.06.2017
16:19:05
ну с вероятностью 99.99999999999999999999999% это ты где-то проебался, лол

Constantine
22.06.2017
16:23:56
самый эпический - баг в реализации SeekEoln в Delphi 7, которая всегда возвращала false с позиции, делящейся на 0x80

Vladislav
22.06.2017
16:42:03

Constantine
22.06.2017
16:50:37

Google

Constantine
22.06.2017
16:50:58
Поэтому вычитывали не тот флаг при дочитывании кэша

Andrei
22.06.2017
18:48:21
Причем именно багами, злобными, проявляющимися в рантайме.

Alexander
22.06.2017
18:49:14
ссылочки*

Admin
ERROR: S client not available

Andrei
22.06.2017
18:50:03
Один в CL.exe от 2013 студии, там никакого багрепорта по понятным причинам.
Второй в стдлибе кланга/эппловской имплементации pthread-ов.
Соответствующий репорт был отправлен в эппл, и была переписка там.
Тоже по понятным причинам не могу показать.
Потому что не публичный.

/dev
22.06.2017
19:06:34

Владислав
22.06.2017
19:14:50
Я утрировал, конечно, но в любом случае, я уверен, что в подовляющем большинстве случаев, когда программист начинает думать, что это баг компилятора, в итоге оказывается, что это его собственная ошибка

Constantine
22.06.2017
19:24:44
Бага выбора языка же

Владислав
22.06.2017
19:26:53
о чём ты?

Constantine
22.06.2017
19:27:35
Будь проклят тот день, когда я написал
std::cout << "Hello, world!" << std::endl;

Владислав
22.06.2017
19:28:15
мне просто java слишком сложной показалась, поэтому я пишу на плюсах

Arseny
22.06.2017
19:29:09

Владислав
22.06.2017
19:29:41
ну рил же сложнее

Constantine
22.06.2017
19:30:23
#holywar

Google

Group Butler [beta]
22.06.2017
19:30:24
#holywar
С таким заявлением вам лучше сюда:
pro.cxx.holywars

Владислав
22.06.2017
19:30:53
я не холивара ради :)

Berkus
22.06.2017
19:31:15

Constantine
22.06.2017
19:31:26
я почти разобрался в С++98 за десять лет разработки :)
теперь стандарты печатают быстрее, чем я успеваю заклеивать дыры в собственной ноге

Berkus
22.06.2017
19:32:23

desu
22.06.2017
19:32:42

Constantine
22.06.2017
19:33:03
для стандарта 98 у меня были бронированные ботинки

desu
22.06.2017
19:33:13
а типа простреливать себе ногу.)

Constantine
22.06.2017
19:33:15

desu
22.06.2017
19:33:31
я прострелил голову и сдался
пишу на шарпе
;)

Asyan です
22.06.2017
19:33:43
какой же чухан справа.