diff options
Diffstat (limited to 'libxsde/xsde/cxx/hybrid/any-type.hxx')
-rw-r--r-- | libxsde/xsde/cxx/hybrid/any-type.hxx | 56 |
1 files changed, 51 insertions, 5 deletions
diff --git a/libxsde/xsde/cxx/hybrid/any-type.hxx b/libxsde/xsde/cxx/hybrid/any-type.hxx index a356564..48b0e22 100644 --- a/libxsde/xsde/cxx/hybrid/any-type.hxx +++ b/libxsde/xsde/cxx/hybrid/any-type.hxx @@ -8,11 +8,11 @@ #include <xsde/cxx/config.hxx> -/* #ifdef XSDE_STL # include <string> #endif -*/ + +#include <xsde/cxx/hybrid/sequence.hxx> namespace xsde { @@ -22,11 +22,55 @@ namespace xsde { struct any_type { - /* -#ifdef XSDE_POLYMORPHIC + any_type () + : data_ (0) + { + } + + // Custom data. + // + typedef data_sequence custom_data_sequence; + typedef custom_data_sequence::iterator custom_data_iterator; + typedef custom_data_sequence::const_iterator custom_data_const_iterator; + +#ifndef XSDE_EXCEPTIONS + bool +#else + void +#endif + allocate_custom_data (); + + const custom_data_sequence& + custom_data () const + { + return *data_; + } + + custom_data_sequence& + custom_data () + { + return *data_; + } + +#ifndef XSDE_EXCEPTIONS + bool +#else + void +#endif + _copy (any_type&) const; + +#ifndef XSDE_POLYMORPHIC + ~any_type (); + + any_type* + _clone () const; +#else virtual ~any_type (); + virtual any_type* + _clone () const; + #ifdef XSDE_STL virtual const std::string& _dynamic_type () const; @@ -41,7 +85,9 @@ namespace xsde _static_type (); #endif #endif - */ + + private: + data_sequence* data_; }; } } |