首页 > 解决方案 > 使用指针作为模板参数

问题描述

在 C++ 中,我可以这样做:

template <typename T, T* Ptr>
class MyClass {};

我有两个问题:

  1. 在编译时我在哪里可以获得除 nullptr 之外的指针?

  2. 如何使用此语言功能?当然,这对于实际案例会很有趣,但似乎这是一种相当具体的可能性,因此人工示例也将是合适的。

标签: c++pointerstemplates

解决方案


您可以在编译时获得指向具有静态存储持续时间和链接的任何内容的指针:

static const int values[] = {4, 8, 15, 16, 23, 42};
MyClass <const int, values> myClass;

static char magic = '*';
MyClass <char, &magic> myClass2;

演示


推荐阅读