std::tr1::shared_ptr<Investment> pInv(createInvestment());

int daysHeld(const Investment *pi); // 투자 기간을 반환하는 함수

int days = daysHeld(pInv); // 오류 발생!

스마트 포인터를 실제 자원으로 변환하는 두 가지 방법

1. Explicit Conversion (명시적 변환)

int days = daysHeld(pInv.get());

2.Implicit Conversion (암시적 변환)

class Font {
public:
    explicit Font(FontHandle fh) : f(fh) {}
    ~Font() { releaseFont(f); }

    operator FontHandle() const { return f; } // 암시적 변환 제공
private:
    FontHandle f;
};

Font f(getFont());
changeFontSize(f, newSize); // Font 객체가 자동으로 FontHandle로 변환됨

💫Things to Remember