本文整理汇总了C++中TypeConstraint::inner方法的典型用法代码示例。如果您正苦于以下问题:C++ TypeConstraint::inner方法的具体用法?C++ TypeConstraint::inner怎么用?C++ TypeConstraint::inner使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TypeConstraint
的用法示例。
在下文中一共展示了TypeConstraint::inner方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: relaxType
/*
* Returns the least specific supertype of t that maintains the properties
* required by tc.
*/
Type relaxType(Type t, TypeConstraint tc) {
always_assert(t <= Type::Gen && t != Type::Bottom);
if (tc.category == DataTypeGeneric) return Type::Gen;
auto outerRelaxed = relaxOuter(t & Type::Cell, tc);
if (t.notBoxed()) return outerRelaxed;
auto innerType = (t & Type::BoxedCell).innerType();
auto innerRelaxed = tc.innerCat == DataTypeGeneric ? Type::Cell
: relaxOuter(innerType,
tc.inner());
// Only add outerRelax into the result type if t had a meaningful outer type
// coming in.
return (t.isBoxed() ? Type::Bottom : outerRelaxed) |
(innerRelaxed - Type::Uninit).box();
}
示例2: typeFitsInnerConstraint
/*
* Returns true iff t is not boxed, or if tc.innerCat is satisfied by t's inner
* type.
*/
static bool typeFitsInnerConstraint(Type t, TypeConstraint tc) {
return tc.innerCat == DataTypeGeneric || t.notBoxed() ||
typeFitsOuterConstraint((t & Type::BoxedCell).innerType(), tc.inner());
}