命名实体作为模板参数列表中T的指针

αλε*_*λυτ 5 c++ standards templates c++11

在C++ 11标准(第3.3.9/3节)中,我找到了这段代码:

template<class T, T* p, class U = T> class X { /? ... ?/ };
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释哪些可能(和有用的)代码可以包含在类X的主体中?随着参数的使用p.

Yak*_*ont 2

如果foo是 类型的全局对象T,则可以将指向 的指针传递footemplate class X

作为一个例子,假设T是一个ostream. 我可以创建两种日志记录类型,它们基于错误或输出的类型。他们的static方法甚至可以做到这一点。