Size: a a a

cxx.Дискуссионная

2020 March 26

RM

Roy Mustang in cxx.Дискуссионная
Я же говорю, там компилятор как то странно поступает
источник

RM

Roy Mustang in cxx.Дискуссионная
По сути, функцию он заинлайнил, но при это логичней было бы выбросить Test функцию
источник

RM

Roy Mustang in cxx.Дискуссионная
А она осталась
источник

IO

Igor Okhremchuk in cxx.Дискуссионная
Вот полный листинг при О3
main:                                   # @main
       push    rax
       mov     edi, offset std::cout
       mov     esi, 150
       call    std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)
       xor     eax, eax
       pop     rcx
       ret
_GLOBAL__sub_I_example.cpp:             # @_GLOBAL__sub_I_example.cpp
       push    rax
       mov     edi, offset std::__ioinit
       call    std::ios_base::Init::Init() [complete object constructor]
       mov     edi, offset std::ios_base::Init::~Init() [complete object destructor]
       mov     esi, offset std::__ioinit
       mov     edx, offset __dso_handle
       pop     rax
       jmp     __cxa_atexit            # TAILCALL
источник

Т8

Т-34 85 in cxx.Дискуссионная
Roy Mustang
Я же говорю, там компилятор как то странно поступает
@notice1 @h4cktill Рой понимает, когда компилятор работает правильно, а когда нет
источник

IO

Igor Okhremchuk in cxx.Дискуссионная
mov     edi, offset std::cout
       mov     esi, 150
источник

IO

Igor Okhremchuk in cxx.Дискуссионная
Это адрес инструкции и адрес источника, назначения регистров почитай
источник

RM

Roy Mustang in cxx.Дискуссионная
Т-34 85
@notice1 @h4cktill Рой понимает, когда компилятор работает правильно, а когда нет
Причем тут правильно или нет? Ты давай не выдумывая, я считаю что нелогично поступает компилятор
источник

RM

Roy Mustang in cxx.Дискуссионная
Оставляя неиспользуемую функцию
источник

IO

Igor Okhremchuk in cxx.Дискуссионная
Тебе компилятор просто в компиль тайме посчитал результат
источник

IO

Igor Okhremchuk in cxx.Дискуссионная
Т-34 85
А без знания ассемблера как правильно оценить разницу?
Кто начинает парится над кодогенерацией, тот по-тихоньку осваивает
источник

а

акварель на мету... in cxx.Дискуссионная
есть какой-нибуть аналог sprintf только для std::string ?
источник

IO

Igor Okhremchuk in cxx.Дискуссионная
акварель на мету
есть какой-нибуть аналог sprintf только для std::string ?
С++ 20 же пришло!!! Формат либы завозят
источник

а

акварель на мету... in cxx.Дискуссионная
Igor Okhremchuk
С++ 20 же пришло!!! Формат либы завозят
ну его еще ничего не компилит
источник

Т8

Т-34 85 in cxx.Дискуссионная
акварель на мету
ну его еще ничего не компилит
Какой компилятор, какая версия?
источник

IO

Igor Okhremchuk in cxx.Дискуссионная
акварель на мету
ну его еще ничего не компилит
Компилятор какой?
источник

а

акварель на мету... in cxx.Дискуссионная
источник

RM

Roy Mustang in cxx.Дискуссионная
Igor Okhremchuk
Это адрес инструкции и адрес источника, назначения регистров почитай
Щас жди
источник

RM

Roy Mustang in cxx.Дискуссионная
источник

RM

Roy Mustang in cxx.Дискуссионная
Clang 9.0.1 C++20, /O2
источник