引用自 WinRT header 的消费和委托模板有何不同?
What is the different between consume and delegate template quoted from WinRT header?
为什么不使用模板类型定义 struct consume
?
consume_t
和 delegate_t
有什么区别?
template <typename T>
struct consume;
template <typename D, typename I = D>
using consume_t = typename consume<I>::template type<D>;
template <typename T>
struct delegate;
template <typename T, typename H>
using delegate_t = typename delegate<T>::template type<H>;
显示的代码不包含 struct consume
的定义,既没有也没有模板类型。
然而,这是它的(前向)声明
template <typename T>
struct consume;
它只是说明了这种类型确实存在并且它采用模板参数。
与 struct delegate
相同。
所以很明显两者都存在,但定义(其他地方)可能不同。
这反过来意味着 delegate_t
和 consume_t
基于不同的模板化类型,因此也(很可能)不同,即使它们的定义看起来如此相似。
为什么不使用模板类型定义 struct consume
?
consume_t
和 delegate_t
有什么区别?
template <typename T>
struct consume;
template <typename D, typename I = D>
using consume_t = typename consume<I>::template type<D>;
template <typename T>
struct delegate;
template <typename T, typename H>
using delegate_t = typename delegate<T>::template type<H>;
显示的代码不包含 struct consume
的定义,既没有也没有模板类型。
然而,这是它的(前向)声明
template <typename T>
struct consume;
它只是说明了这种类型确实存在并且它采用模板参数。
与 struct delegate
相同。
所以很明显两者都存在,但定义(其他地方)可能不同。
这反过来意味着 delegate_t
和 consume_t
基于不同的模板化类型,因此也(很可能)不同,即使它们的定义看起来如此相似。