本文整理汇总了C++中CanTupleType::getElementType方法的典型用法代码示例。如果您正苦于以下问题:C++ CanTupleType::getElementType方法的具体用法?C++ CanTupleType::getElementType怎么用?C++ CanTupleType::getElementType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CanTupleType
的用法示例。
在下文中一共展示了CanTupleType::getElementType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: assert
/// Return the range of indexes for the given tuple type element.
static std::pair<unsigned,unsigned>
getElementRange(CanTupleType tupleType, unsigned eltIndex) {
assert(eltIndex < tupleType->getNumElements());
unsigned begin = 0;
for (unsigned i = 0; i < eltIndex; ++i) {
begin += getRValueSize(tupleType.getElementType(i));
}
unsigned end = begin + getRValueSize(tupleType.getElementType(eltIndex));
return { begin, end };
}
示例2: visitTupleType
clang::CanQualType GenClangType::visitTupleType(CanTupleType type) {
unsigned e = type->getNumElements();
if (e == 0)
return getClangASTContext().VoidTy;
CanType eltTy = type.getElementType(0);
for (unsigned i = 1; i < e; i++) {
assert(eltTy == type.getElementType(i) &&
"Only tuples where all element types are equal "
"map to fixed-size arrays");
}
auto clangEltTy = Converter.convert(IGM, eltTy);
if (!clangEltTy) return clang::CanQualType();
APInt size(32, e);
auto &ctx = getClangASTContext();
return ctx.getCanonicalType(
ctx.getConstantArrayType(clangEltTy, size,
clang::ArrayType::Normal, 0));
llvm_unreachable("Unexpected tuple type in Clang type generation!");
}