什么是“from?:first”在TextMate源代码regexp.cc中

时间:2013-05-20 14:37:35

标签: c++ textmate

在阅读TextMate的源代码时,我遇到a line of code让我感到困惑:

match_t search (pattern_t const& ptrn, char const* first, char const* last, char const* from, char const* to, OnigOptionType options)
{
    if(ptrn)
    {
        struct helper_t { static void region_free (OnigRegion* r) { onig_region_free(r, 1); } };
        regexp::region_ptr region(onig_region_new(), &helper_t::region_free);
        if(ONIG_MISMATCH != onig_search(ptrn.get().get(), first, last, from ?: first, to ?: last, region.get(), options))
            return match_t(region, ptrn.get(), first);
    }
    return match_t();
}

?:运算符是什么意思? “from?:first”等同于“from?default(decltype(from)):first”?

因为我正在使用Windows而只是阅读代码,这对我来说真是一个难题。我相信这是C ++代码,因为它是一个* .cc文件。 (不应该是Objective-C)

您可以在此处查看代码:https://github.com/textmate/textmate/blob/master/Frameworks/regexp/src/regexp.cc#L115

0 个答案:

没有答案
相关问题