summaryrefslogtreecommitdiff
path: root/TAO/tao/String_Sequence_Element_T.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/String_Sequence_Element_T.h')
-rw-r--r--TAO/tao/String_Sequence_Element_T.h24
1 files changed, 19 insertions, 5 deletions
diff --git a/TAO/tao/String_Sequence_Element_T.h b/TAO/tao/String_Sequence_Element_T.h
index 9d7a2bec549..ff7f7403fcd 100644
--- a/TAO/tao/String_Sequence_Element_T.h
+++ b/TAO/tao/String_Sequence_Element_T.h
@@ -28,16 +28,16 @@ public:
typedef character_type * value_type;
typedef character_type const * const_value_type;
typedef typename traits::string_var string_var;
+ typedef typename traits::string_out string_out;
typedef typename traits::string_mgr string_mgr;
private:
- inline string_sequence_element<traits> & pseudo_copy_swap(
- string_var & rhs)
+ inline string_sequence_element<traits> & pseudo_copy_swap(string_var & rhs)
{
if (release())
- {
- traits::release(*element_);
- }
+ {
+ traits::release(*element_);
+ }
*element_ = rhs._retn();
return *this;
}
@@ -100,6 +100,20 @@ public:
return *this->element_;
}
+ inline character_type *&inout (void) const {
+ return *this->element_;
+ }
+
+ inline string_out out (void) const {
+ return *this->element_;
+ }
+
+ inline const character_type *_retn (void) {
+ value_type * copy_ = this->element_;
+ *this->element_ = traits::default_initializer();
+ return *copy_;
+ }
+
void swap(string_sequence_element & rhs)
{
std::swap(element_, rhs.element_);