初始化列表模板变量

Initialization list template variable

我试图在网站上查找此内容,但找不到我需要的内容。
基本上我需要知道在默认构造函数中初始化模板变量的正确方法是什么。
例如:

template<typename T>
class myClass{
   T *arr;        // no problem with this.
   int size;
   int capacity;
   T def_value;   // how do I initialize this template variable in the constructor?

我试过类似的东西:

myClass(): arr(0), size(0), capacity(0), def_value(0){};

但它无法编译,因为我无法将 0 分配给例如 char(我知道这一点)。 我该如何正确初始化 def_value

How am I supposed to initialize the def_value correctly?

简单地喜欢例如这个:

myClass(): arr(nullptr), size(0), capacity(0), def_value() {};
                                            // ^^^^^^^^^^^

或者这个:

myClass(): arr(nullptr), size(0), capacity(0), def_value{} {};
                                            // ^^^^^^^^^^^