<s>[INST] class Complex {
public:
    Complex(int real = 0, int imag = 0): real_(real), imag_(imag) {}

    // ... rest of class definition ...

private:
    int real_;
    int imag_;
};

int main() {
    Complex c(3, 4);
    // print sum of real and imaginary part
    // something like cout << c;
    return 0;
}

If we add an overloaded operator<<, we will create a "hidden" copy of an object. Is it possible to avoid this copy?[/INST]