template <typename> - 它是如何工作的?

Kar*_*ski 3 c++ templates arguments

我遇到过这样的语法:

template<typename>
struct is_const{static const bool value = 0;};
Run Code Online (Sandbox Code Playgroud)

这段代码将如何表现以及如何应用?我没有在互联网上找到任何例子或解释.

我想知道缺少参数名称(例如T).

Tar*_*ama 7

这是一个主模板,它采用单个模板参数并具有bool等于的静态成员0.这可能是类型特征的主要模板定义,并且在其他地方存在相应的特殊化,如下所示:

template <typename T>
struct is_const<const T>
{static const bool value = 1;};
Run Code Online (Sandbox Code Playgroud)

这将允许您检查类型是否const合格,如下所示:

static_assert(!is_const<int>::value, "wat");
static_assert(is_const<const int>::value, "wat");
Run Code Online (Sandbox Code Playgroud)