-std = C++ 0x 옵션을 사용하여 gcc 4.4.6에서 unique_ptr을 활성화했습니다. 그것은 꽤 잘 작동하는 것으로 보입니다. 그리고 필자는 필자가 필요로하는 것, 즉 커스텀 Deleter를 가진 스코프 된 포인터입니다.std :: unique_ptr ostream inserter
그러나 문제를 발견했습니다.
typedef std::unique_ptr<X> XPtr;
XPtr ptr1(new X);
XPtr ptr2(new X);
std::cout << "ptr1 points to " << ptr1 << std::endl;
std::cout << "ptr2 points to " << ptr2 << std::endl;
표시 : 1
에 1 PTR2 포인트 PTR1 점 I는 ostream에 삽입이 부울 값을 삽입 생각.
다음 내용이 수정되었지만 표준 라이브러리의 일부가 아니어야하는지 궁금합니다.
template<typename Target, typename Deleter>
std::ostream & operator <<(std::ostream & out, const std::unique_ptr<Target, Deleter> & value)
{
// output the raw pointer
out << value.get();
return out;
}
그래서 질문은 :이 GCC의 현재 unique_ptr 구현의 제한, 또는 내가 unique_ptr에서 너무 많은 기대는 무엇입니까?
이렇게해서는 안됩니다. 'unique_ptr'을'bool'로 변환하는 것은'explicit'으로 표시되어야합니다. – pmr