C++ で一時変数が const 参照された時の破棄されるタイミングを実験する2020年03月13日 07時21分34秒

一時変数を const 参照するのは C++ の規約が許可している。前回は、一時変数を const 参照を用いて cout で出力する例をあげた。

折角なので、今回は実際に一時変数が破棄されるタイミングを観察する。

#include <iostream>

class Int
{
    int value_;

public:
    Int( int value ): value_( value ){}

    ~Int()
    {
        std::cout << "~Int(" << value_ << ")" << std::endl;
    }
};

int main()
{
    const Int& i = Int( 3 );
    std::cout << "END" << std::endl;
}
実行すると、main 関数が END を出力した後に ~Int が呼ばれているのが分かる。
% c++ -std=c++98 const_refernece.cpp
% ./a.out 
END
~Int(3)

前回