boost::optional<T> で、Tが組み込み型の時は真偽値から暗黙に構築できるのに、

boost::optional<int> a = true; // 0で初期化
boost::optional<int> b = false; // 未初期化状態になる

組み込み型でないときは、false では構築できても true では構築できない。

boost::optional<std::wstring> c = true; // コンパイルできない
boost::optional<std::wstring> d = false; // 未初期化状態になる

これすごく便利なんだけど(例えば、boost::optional<std::wstring> を返す関数で
return false すれば未初期化状態のオブジェクトを返せるし、うっかり return true しても安全)
どうやって実装しているのか誰か説明してくれ。