本文整理汇总了C++中corba::TypeCode_ptr::default_index方法的典型用法代码示例。如果您正苦于以下问题:C++ TypeCode_ptr::default_index方法的具体用法?C++ TypeCode_ptr::default_index怎么用?C++ TypeCode_ptr::default_index使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类corba::TypeCode_ptr
的用法示例。
在下文中一共展示了TypeCode_ptr::default_index方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
CORBA::Boolean
TAO::TypeCode::Union<char const *,
CORBA::TypeCode_ptr const *,
TAO::TypeCode::Case<char const *,
CORBA::TypeCode_ptr const *> const * const *,
TAO::Null_RefCount_Policy>::equal_i (
CORBA::TypeCode_ptr tc
) const
{
// These calls shouldn't throw since CORBA::TypeCode::equal()
// verified that the TCKind is the same as our's prior to invoking
// this method, meaning that the CORBA::tk_union TypeCode methods
// are supported.
CORBA::ULong const tc_count = tc->member_count ();
CORBA::Long tc_def = tc->default_index ();
if (tc_count != this->ncases_ || tc_def != this->default_index_)
return false;
// Check the discriminator type.
CORBA::TypeCode_var tc_discriminator = tc->discriminator_type ();
CORBA::Boolean const equal_discriminators =
Traits<char const *>::get_typecode (this->discriminant_type_)->equal (
tc_discriminator.in ());
if (!equal_discriminators)
return false;
for (CORBA::ULong i = 0; i < this->ncases_; ++i)
{
if (this->default_index_ > -1
&& static_cast<CORBA::ULong> (this->default_index_) == i)
{
// Don't bother checking equality of default case label. It
// will always be the zero octet (the CDR encoded value is
// ignored).
continue;
}
case_type const & lhs_case = *this->cases_[i];
bool const equal_case = lhs_case.equal (i, tc);
if (!equal_case)
return false;
}
return true;
}