이 예제 클래스 http://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/sp_techniques.html#as_lock을 발견했으며 구문에 어려움을 겪고 있습니다.매개 변수 구문
class shared_lock
{
private:
shared_ptr<void> pv;
public:
template<class Mutex> explicit shared_lock(Mutex & m): pv((m.lock(), &m), mem_fn(&Mutex::unlock)) {}
};
나는 "(m.lock(), & m)"이 부분을 제외하고 모든 것을 이해 (나는 믿는다). 이 모든 것이 스마트 포인터를 초기화하는 첫 번째 매개 변수 인 것으로 보입니다. 그 복합 문은 무엇을 평가합니까? 그것은 단순히 m의 주소입니까? 왜 잠금이 매개 변수 목록의 일부로 여기에 배치됩니까 (그리고 어떻게 합법적입니까)?
template<class Mutex> explicit shared_lock(Mutex & m): pv(&m, mem_fn(&Mutex::unlock)) {m.lock();}
내 다른 문이 기능을 변경 하는가 대신, 내가 좋아하는 명령문이 예상 한 것?
http://en.wikipedia.org/wiki/Comma_operator – jrok
감사합니다. – helmk