template< class T >
struct A
{
T a = 0;
T& operator[]( const int i )
{
cout << "L" << endl;
return a;
}
T operator[]( const int i ) const
{
cout << "R" << endl;
return a;
}
};
void foo( A< int >& a )
{
cout << a[ 0 ] << endl;
}
void bar( const A< int >& a )
{
cout << a[ 0 ] << endl;
}
int main()
{
A< int > a;
foo( a );
bar( a );
return 0;
}
이러면 L R 순으로 나올껄?
일반적으로 쓸 수 있는건 아니지만.
이거 당연한거라 생각했는데 보니까 조금 이상함
웅? 뭐가 이상함~
해석의 여지는 const인데 이걸로 우측값 좌측값이 갈린다는게
고전적 L R 정의에서 좀 바껴서 나도 뭐 이렇게 된다 정도로 쓰고있음~
전 이거 전부알고 있다 생각했는데 C++ 신기한게 너무 많음
아 이거 const ref 에 R값이 붙는 그 원리인가염 - return 0;
응~
설명 ㄱㅅㄱㅅ - return 0;
My pleasure~
저도 배워갑니다
My pleasure2~