对基元/类使用模板和指向基元/类的指针安全吗?
Is it safe to to use template for primitive / class and pointer to primitive / class?
template<class T>
class stack {
T arr[5];
};
class item{};
stack <int> obj1;
stack <int *> obj2;
stack <item> obj3;
stack <item *> obj4;
是一个正确的模板实现吗?
简单回答:对
复杂答案:
只要类型T可以默认构造(因为它在堆栈中的数组中使用),那么它就可以用作堆栈中的模板形参。
所以你列出的所有类型都适用于stack
经验法则:如果你可以用模板化的类型手动编写类,并且它仍然可以工作(编译),那么可以将其用作模板参数。
可以。
不要混淆模板和宏。在宏中,字符串被预处理器简单地替换,这可能导致不正确或不需要的结果。在模板中,T成为真正的类型,因为它本来是一个类型定义。
你知道STL有一个栈实现,你(寻找std::stack)吗?
可以。
是正确的。
模板可以与本地类型一起使用,没有任何问题。
是。就语言而言,它们都是类模板的有效实例化。
相关文章:
- 在函数结束后使用指向变量的指针是否安全?
- char p[0]表示自动分配的缓冲区还是安全指针
- 通过std::shared_ptr使用Rcpp和RcppParallel的线程安全函数指针
- 用非零值初始化void指针的正确(或最安全)方法
- 初始化期间针对安全检查的指针的恒定正确性
- 这C++指针使用线程安全吗?
- 带有此指针的内存安全吗?
- 是否可以访问非线程安全容器内指针指向的值(线程安全映射中的条目)?
- 存储指向 std::string 数据的指针是否安全?
- 为什么引用比指针更安全?
- 为什么在构造函数中将字符串分配给指针是安全的?
- 是否访问指针元组和互斥锁线程安全
- 将数据成员的指针传递给基类构造函数是否安全?
- 将C 中的每个指针删除作为阵列的指针安全吗?
- 重新分配指针阵列的一部分的安全方法
- C 中的结构偏移和指针安全
- 存储STL列表迭代器的指针安全吗?
- 对基元/类使用模板和指向基元/类的指针安全吗?
- 向上投射函数指针安全吗
- 用于空指针安全访问的C/ c++宏