本文整理汇总了C++中AST_Decl::is_nested方法的典型用法代码示例。如果您正苦于以下问题:C++ AST_Decl::is_nested方法的具体用法?C++ AST_Decl::is_nested怎么用?C++ AST_Decl::is_nested使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AST_Decl
的用法示例。
在下文中一共展示了AST_Decl::is_nested方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ctx
int
be_visitor_union_any_op_ch::visit_union (be_union *node)
{
if (node->cli_hdr_any_op_gen ()
|| node->imported ())
{
return 0;
}
TAO_OutStream *os = this->ctx_->stream ();
const char *macro = this->ctx_->export_macro ();
*os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl_2;
be_module *module = 0;
AST_Decl *decl = node;
if (decl->is_nested ())
{
if (node->defined_in ()->scope_node_type () == AST_Decl::NT_interface)
{
be_interface *intf = 0;
intf = be_interface::narrow_from_scope (node->defined_in ());
decl = intf;
}
if (decl->defined_in ()->scope_node_type () == AST_Decl::NT_module)
{
module = be_module::narrow_from_scope (decl->defined_in ());
if (!module)
{
ACE_ERROR_RETURN ((LM_ERROR,
"be_visitor_union_any_op_ch::"
"visit_union - "
"Error parsing nested name\n"),
-1);
}
// Some compilers handle "any" operators in a namespace
// corresponding to their module, others do not.
*os << "\n\n#if defined (ACE_ANY_OPS_USE_NAMESPACE)\n";
be_util::gen_nested_namespace_begin (os, module);
*os << macro << " void operator<<= (::CORBA::Any &, const ::" << node->name ()
<< " &); // copying version" << be_nl;
*os << macro << " void operator<<= (::CORBA::Any &, ::" << node->name ()
<< "*); // noncopying version" << be_nl;
*os << macro << " ::CORBA::Boolean operator>>= (const ::CORBA::Any &, ::"
<< node->name () << " *&); // deprecated\n";
*os << macro << " ::CORBA::Boolean operator>>= (const ::CORBA::Any &, const ::"
<< node->name () << " *&);";
be_util::gen_nested_namespace_end (os, module);
// Emit #else.
*os << be_nl_2
<< "#else\n\n";
}
}
*os << be_global->core_versioning_begin () << be_nl;
*os << macro << " void operator<<= (::CORBA::Any &, const " << node->name ()
<< " &); // copying version" << be_nl;
*os << macro << " void operator<<= (::CORBA::Any &, " << node->name ()
<< "*); // noncopying version" << be_nl;
*os << macro << " ::CORBA::Boolean operator>>= (const ::CORBA::Any &, "
<< node->name () << " *&); // deprecated\n";
*os << macro << " ::CORBA::Boolean operator>>= (const ::CORBA::Any &, const "
<< node->name () << " *&);";
*os << be_global->core_versioning_end () << be_nl;
if (module != 0)
{
*os << "\n\n#endif";
}
be_visitor_context ctx (*this->ctx_);
for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_localtypes);
!si.is_done ();
si.next ())
{
AST_Decl *d = si.item ();
be_enum *e = be_enum::narrow_from_decl (d);
if (e != 0)
{
be_visitor_enum_any_op_ch visitor (&ctx);
if (e->accept (&visitor) == -1)
{
ACE_ERROR ((LM_ERROR,
"(%N:%l) be_visitor_union_any_op_ch::visit_union"
" - codegen for enum failed\n"));
}
//.........这里部分代码省略.........