summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp
diff options
context:
space:
mode:
authorbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-28 18:31:01 +0000
committerbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-10-28 18:31:01 +0000
commitcdb6fd66611283a0314ab23e08472d11dae4f0e4 (patch)
treefd6ae8c3db752254802dfaafd1543974a4741e47 /TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp
parentf984aa2bff444f381570d2f97ac9ba958926fb6b (diff)
downloadATCD-cdb6fd66611283a0314ab23e08472d11dae4f0e4.tar.gz
ChangeLogTag:Tue Oct 28 12:02:47 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp
index 82e0aa4be8b..cac9f2c4219 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp
@@ -56,6 +56,22 @@ be_visitor_valuetype_any_op_cs::visit_valuetype (be_valuetype *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ // All template specializations must be generated before the instantiations
+ // in the operators.
+ *os << be_nl << be_nl
+ << "template<>" << be_nl
+ << "ACE_INLINE" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Impl_T<" << node->name () << ">::to_value ("
+ << be_idt << be_idt_nl
+ << "CORBA::ValueBase *&_tao_elem" << be_uidt_nl
+ << ") const" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "CORBA::add_ref (this->value_);" << be_nl
+ << "_tao_elem = this->value_;" << be_nl
+ << "return 1;" << be_uidt_nl
+ << "}";
+
*os << "// Copying insertion." << be_nl
<< "void" << be_nl
<< "operator<<= (" << be_idt << be_idt_nl
@@ -99,16 +115,6 @@ be_visitor_valuetype_any_op_cs::visit_valuetype (be_valuetype *node)
<< ");" << be_uidt << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl
- << "template class TAO::Any_Impl_T<" << node->full_name ()
- << ">;" << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate TAO::Any_Impl_T<" << node->full_name ()
- << ">" << be_uidt_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
node->cli_stub_any_op_gen (1);
return 0;
}