在此C ++程序中,“ v.template is <t>()”是什么意思?

时间:2019-02-28 03:32:38

标签: c++ c++11 visual-c++ c++14

c++ code

template <typename F, typename V, typename R, typename T, typename... Types>
struct dispatcher<F, V, R, T, Types...>
{
    VARIANT_INLINE static R apply_const(V const& v, F&& f)
    {
        if (v.template is<T>())
        {
            return f(unwrapper<T>::apply_const(v.template get_unchecked<T>()));
        }
        else
        {
            return dispatcher<F, V, R, Types...>::apply_const(v, std::forward<F>(f));
        }
    }

    VARIANT_INLINE static R apply(V& v, F&& f)
    {
        if (v.template is<T>())
        {
            return f(unwrapper<T>::apply(v.template get_unchecked<T>()));
        }
        else
        {
            return dispatcher<F, V, R, Types...>::apply(v, std::forward<F>(f));
        }
    }
};

此c ++编中的v.template is<T>()是什么意思? 我找不到任何“是”函数,这个v.template is<T>()是系统内部函数或带有v.template get_unchecked<T>()的关键字。

0 个答案:

没有答案