diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-11 17:32:01 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-11 17:32:01 +0200 |
commit | 0bfda486167432a9da8eec62b4578a22592a9275 (patch) | |
tree | 968d622d3918c9ac969de8b9c1e97e67b6cbee8b /libxsde/xsde/cxx/hybrid/sequence.ixx | |
parent | f8bb2faef4b272ed150eb3ca4cedaa79da410694 (diff) |
Add generation of detach functions
New option: --generate-detach. Also added detach/attach functionality
to var_seq, non-STL str_seq, and string_base.
Diffstat (limited to 'libxsde/xsde/cxx/hybrid/sequence.ixx')
-rw-r--r-- | libxsde/xsde/cxx/hybrid/sequence.ixx | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libxsde/xsde/cxx/hybrid/sequence.ixx b/libxsde/xsde/cxx/hybrid/sequence.ixx index 11bc13d..a015e31 100644 --- a/libxsde/xsde/cxx/hybrid/sequence.ixx +++ b/libxsde/xsde/cxx/hybrid/sequence.ixx @@ -569,6 +569,23 @@ namespace xsde return i; } + template <typename T> + inline T* var_seq<T>:: + detach (iterator i) + { + T* r = *i.i_; + *i.i_ = 0; + return r; + } + + template <typename T> + inline void var_seq<T>:: + attach (iterator i, T* x) + { + delete *i.i_; + *i.i_ = x; + } + #ifdef XSDE_EXCEPTIONS template <typename T> inline void var_seq<T>:: |