当前位置: 首页>>代码示例>>C++>>正文


C++ Argument::refType方法代码示例

本文整理汇总了C++中Argument::refType方法的典型用法代码示例。如果您正苦于以下问题:C++ Argument::refType方法的具体用法?C++ Argument::refType怎么用?C++ Argument::refType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Argument的用法示例。


在下文中一共展示了Argument::refType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: if

Match
Argument::
isConvertibleTo(const Argument& target) const
{
    static const Type* valueType = reflect::type<Value>();

    if (*this == target) return Match::Exact;

    if ((type() == valueType) ^ (target.type() == valueType))
        return Match::Exact;

    bool isExact = false;

    if (type()->hasConverter(target.type())) {
        if (target.refType() != RefType::LValue) return Match::Partial;
        return Match::None;
    }

    if (target.refType() != RefType::Copy) {
        if (!testConstConversion(isConst(), target.isConst()))
            return Match::None;
    }
    else isExact = refType() == RefType::RValue;

    if (target.refType() == RefType::LValue) {
        if (target.isConst()) {}
        else if (isConst()) return Match::None;
        else if (refType() != RefType::LValue) return Match::None;
    }

    else if (target.refType() == RefType::RValue) {
        if (refType() != RefType::RValue) return Match::None;
    }

    if (!target.type()->isParentOf(type())) return Match::None;

    if (isExact) return Match::Exact;
    if (isConst() == target.isConst() && refType() == target.refType())
        return Match::Exact;

    return Match::Partial;
}
开发者ID:RAttab,项目名称:reflect,代码行数:42,代码来源:argument.cpp


注:本文中的Argument::refType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。