c++ - 相同的声明两种不同的类型

标签 c++ metaprogramming

我希望能够做到这一点:

X<int> type_0;
X<int> type_1; 

我希望 type_0 和 type_1 是两种不同的类型。我该怎么做?

最佳答案

template < typename T, int I > class X; 

X<int, __LINE__ > x0; 
X<int, __LINE__ > x1;

x0 和 x1 将是不同的类型,如果它们不在文件中的同一行,则任何其他类似的声明也将是不同的类型。

关于c++ - 相同的声明两种不同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4275369/

相关文章:

metaprogramming - 你能嵌套 C 预处理器指令吗?

ruby - 如何在 ruby​​ 中将服务对象/模块作为参数传递

c++ - `if constexpr`可以用来声明不同类型和init-expr的变量吗

c++ - 为什么使用两个 sizeof 来检查一个类是否是默认可构造的,而一个却不行?

ruby - 在 Ruby 的对象中重写 `not` 的定义

Python Ctypes : Loading C++ DLL - "module not found" or "function ' fn_12 3' not found"

c++嵌套类,其中1个对象为私有(private)

c++ - 有没有办法使用 SFINAE 检测是否未声明非模板化非成员函数?

c++ - 模板类中引用的类型检查不那么严格吗?

C++ 类不生成匹配函数和已知转换错误