C++ (Qt)#include <stdio.h> struct SomeLargeStuct { char data[100000]; // ....}; SomeLargeStuct f1 () { SomeLargeStuct s; s.data[0] = 'a'; s.data[1] = 0x0a; s.data[2] = 0x00; return s;} SomeLargeStuct f2() { return f1();} SomeLargeStuct f3() { return f2();} int main(int argc, char *argv[]){ (void)argc; (void)argv; auto r = f3(); printf(r.data); return 0;}
C++ (Qt)while(!asleep()) sheep++;
#include <stdio.h> struct SomeLargeStuct { char data[100000]; // ....}; void f1 (SomeLargeStuct& s) { s.data[0] = 'a'; s.data[1] = 0x0a; s.data[2] = 0x00;} void f2(SomeLargeStuct& obj) { f1(obj);} // --- реализация находится в хедере// такую функцию даже древние компиляторы// смогут оптимизироватьinline SomeLargeStuct f3() { SomeLargeStuct obj; f2(obj); return obj; } int main(int argc, char *argv[]){ (void)argc; (void)argv; auto r = f3(); printf(r.data); return 0;}
C++ (Qt)SomeLargeStuct s;..s = f1(); // здесь оптимизации не будет
class Foo{public: // Нет конструктора по умолчанию! Foo( const string &id );};Foo Bar::foo(){ Foo result( m_id_manager->get_id() ); return result;}