13.1.25.5 Objectへの型の拡大
Anyからオブジェクト参照を基本Object型として抽出する方が望ましい場合があります。これを実行するには、boolean、char、およびoctetの抽出に必要なヘルパー型と同様のヘルパー型を使用します。
// C++
class Any
{
public:
...
struct to_object {
to_object(Object_ptr &obj) : ref(obj) {}
Object_ptr &ref;
;
Boolean operator>>=(to_object) const;
...
};to_objectヘルパー型は、Anyからオブジェクト参照を基本Object型として抽出するために使用します。AnyにそのTypeCodeとして示されたオブジェクト参照型の値がある場合、抽出関数operator>>=(to_object)は、その格納されているオブジェクト参照を明示的にObject型に拡大し、TRUEを返します。それ以外の場合は、FALSEを返します。抽出されたオブジェクト参照の型の拡大を実行するのは、オブジェクト参照抽出関数のみです。通常のオブジェクト参照の抽出と同じく、to_object抽出演算子は、オブジェクト参照を複製しません。
親トピック: Any型