ARM の、テンポラリオブジェクトの参照
class Object{}; class Test{ void func1( Object obj ){}; void func2( Object& obj ){}; void func3( const Object obj ){}; void func4( const Object& obj ){}; void test(){ func1( Object() ); func2( Object() ); func3( Object() ); func4( Object() ); } };
こんなクラスを ARM でコンパイルすると、func2 だけエラーが出る。
func1 と func3 はコピーなので大丈夫。
func2 は失敗して、func4 が成功するといういことは、ARM のテンポラリオブジェクトは const オブジェクトとして生成されるっぽい?