强类型定义[重复]

2024-02-29

有什么方法可以制作类型的完整副本,以便可以在模板推导上下文中区分它们?举个例子:

#include <iostream>

template <typename T>
struct test
{
    static int c()
    { 
        static int t = 0;
        return t++;
    }
};

typedef int handle;

int main()
{
    std::cout << test<int>::c() << std::endl;
    std::cout << test<handle>::c() << std::endl;
    return 0;
}

由于 typedef 只为类型创建别名,因此会打印 0, 1 而不是所需的 0, 0。有没有解决方法?


Quoting cplusplus.com http://www.cplusplus.com/doc/tutorial/other_data_types/,

注意typedef 和 using 都不会创建新的不同数据类型。 它们仅创建现有类型的同义词。这意味着该类型 上面的 myword,用 WORD 类型声明,也可以被认为是 类型无符号整型;这并不重要,因为两者实际上都是 指的是同一类型。

Since int and handle are 一且相同, 输出0 1是期待。

不过,正如 @interjay 所建议的,有一个解决方法。

您可以使用BOOST_STRONG_TYPEDEF http://www.boost.org/doc/libs/1_61_0/libs/serialization/doc/strong_typedef.html.

BOOST_STRONG_TYPEDEF( int , handle );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强类型定义[重复] 的相关文章

  • 编写此代码片段的有效方法是什么? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 更有效和 或更短地重写此代码以节省字节并显得不那么冗长的方法 if N 2 0 N 6 N 8 N 10 N 12 N 14 N 16 N
  • JSON.Net 反序列化返回“null”

    我正在使用 JSON Net 反序列化 JSON 字符串 JSON 字符串是 string testJson Fruits Apple color red size round Orange Pro
  • 元组在 VS2012 中如何工作?

    Visual Studio 2012 功能 tuples但不是可变参数模板 这是如何完成的 如何在不使用可变模板的情况下实现元组 简而言之 微软做了与之前在 NET 中实现类似元组的数据类型完全相同的事情 创建许多版本 每个版本都有固定数量
  • c# 从另一个类中的另一个静态事件引发事件

    需要帮助从另一个班级调用事件 我有已声明事件的课程 public class MxPBaseGridView GridView public event AddNewItemsToPopUpMenuEventHandler AddNewIt
  • 叮当错误?命名空间模板类的朋友

    以下代码在 clang 下无法编译 但在 gcc 和 VS 下可以编译 template
  • 为什么需要数字后缀?

    C 语言 我确信还有其他语言 需要在数字文字末尾添加后缀 这些后缀指示文字的类型 例如 5m是一个小数 5f是一个浮点数 我的问题是 这些后缀真的有必要吗 或者是否可以从上下文中推断出文字的类型 例如 代码decimal d 5 0应该推断
  • 将日期时间转换为指定格式

    我有这个日期格式yy MM dd HH mm ss ex 12 02 21 10 56 09 问题是 当我尝试使用以下代码将其转换为不同格式时 CDate 12 02 21 10 56 09 ToString MMM dd yyyy HH
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • 在 C++11 中移出 stdpriority_queue 的元素

    最小的工作示例 include
  • 如何在win32中使用GetSaveFileName保存文件?

    我编写此代码是为了获取 fileName 来保存我的文件 include stdafx h include
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 用于连接 DataTable 上的动态列的动态 LINQ

    我目前遇到的情况不确定如何继续 我有两个从数据库填充的数据表 我还有一个可用的列名称列表 可用于将这两个数据表连接在一起 我希望编写一组 LINQ 查询 这些查询将 显示两个数据表中的行 内部联接 用于从一个数据表更新另一个数据表 显示一个
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • Resharper:IEnumerable 的可能多重枚举

    我正在使用新的 Resharper 版本 6 在我的代码中的几个地方 它给一些文本加了下划线 并警告我可能存在IEnumerable 可能的多重枚举 我理解这意味着什么 并在适当的情况下采纳了建议 但在某些情况下 我不确定这实际上是一个大问
  • 如何在 C# 中获取 Json 数组?

    我有一个像这样的 Json 字符串 我想将它加载到 C 数组中 当我尝试这样做时 我收到异常 我的字符串 customerInformation customerId 123 CustomerName Age 39 Gender Male
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • Linq.Select() 中的嵌套表达式方法调用

    I use Select i gt new T 每次手动点击数据库后将我的实体对象转换为 DTO 对象 以下是一些示例实体和 DTOS 用户实体 public partial class User public int Id get set
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • 如何使用similar_text()改进PHP字符串匹配?

    我正在使用 PHP 的imilar text 调用来比较两个字符串 但是 我没有得到足够好的结果 例如 对于我希望看到 100 的匹配 我得到的最好结果是 80 95 我还可以使用哪些其他函数来深入了解字符串的核心
  • GCC对读/写指令的重新排序

    Linux 的同步原语 自旋锁 互斥锁 RCU 使用内存屏障指令来强制内存访问指令重新排序 这种重新排序可以由 CPU 本身完成 也可以由编译器完成 有人可以展示一些 GCC 生成的代码示例 其中完成了此类重新排序吗 我主要对 x86 感兴
  • 如何为 Seaborn 混淆矩阵添加正确的标签

    我已经使用将数据绘制成混淆矩阵seaborn但我遇到了一个问题 问题是它只在两个轴上显示从 0 到 11 的数字 因为我有 12 个不同的标签 我的代码如下所示 cf matrix confusion matrix y test y pre
  • 如何在 MS Windows 上加载 GTK Sharp 主题

    我正在 MS Windows 上使用 Xamarin Studio 5 4 编写 GTK Sharp v2 12 应用程序 安装的Mono版本是3 2 3 但我使用 Net工具链进行编译 因为Xamarin不允许我使用Mono工具链进行编译
  • 当listview滚动时edittext设置默认值

    我有带有 edittext 的列表视图和 按钮 当我单击按钮时更改编辑文本值 例如递增 递减 当我设置值时5并滚动列表视图 将 edittext 设置值作为默认值如 0 我正在使用这种方式 public View getView final
  • 将灰度图像转换为 3 通道图像[重复]

    这个问题在这里已经有答案了 我想转换具有形状的灰度图像 height width 到具有形状的 3 通道图像 height width nchannels 这项工作是通过for loop 但一定有一个简洁的方法 这是程序中的一段代码 有人可
  • Pyspark 数据框 LIKE 运算符

    Pyspark 中 LIKE 运算符的等效项是什么 例如我想做 SELECT FROM table WHERE column LIKE somestring 寻找像这样简单的东西 但这不起作用 df select column where
  • 如何覆盖 Rails 中的路线路径助手?

    我的路线是这样定义的 match user id gt user show as gt user 如果由于某种原因传递了 nil ID 我希望路由助手仅返回 如果 ID 不为零 我希望它返回正常路径 如 user 123 或者有没有更好的方
  • 通过 PowerShell 在 Firefox 中打开 URL?

    我希望通过 Powershell 脚本在 Firefox 中打开 url 让事情变得有点困难的是 Firefox 不是默认浏览器 它是一个便携式 Firefox 版本 Edit 我的便携式 Firefox 安装似乎存在一些问题 即使将其设置
  • 文本在空间上改变线条

    我有一个列表 其中留有一些用于缩进的空间 并且还提供了虚线底层 但是 那display用于此列表的属性不匹配 导致文本在找到空格时换行 这里有一个Fiddle http jsfiddle net gsamaras cmfL2643 16 T
  • 过滤掉 HTML 标签并解析 python 中的实体

    因为正则表达式让我害怕 所以我试图找到一种方法来删除所有 HTML 标签并从 Python 中的字符串解析 HTML 实体 Use lxml http lxml de 这是 python 最好的 xml html 库 import lxml
  • 为 Android 应用程序设置 ActionBarSherlock 主题

    阅读下面的更新 2 寻找答案 我正在尝试在我的应用程序中使用 ActionBarSherlock 我查看了 4 0 0 版本项目 github 仓库 https github com JakeWharton ActionBarSherloc
  • Flask-SQLAlchemy 超时错误

    我的后端配置是 乌班图12 04 Python 2 7 烧瓶0 9 Flask SQLAlchemy Postgres 9 2 我收到此错误消息 TimeoutError QueuePool limit of size 5 overflow
  • 如何在代码中使用Python覆盖率

    我想从代码内部捕获覆盖范围 我尝试了下面的一种 但出现错误 请参阅以下链接了解覆盖 API https coverage readthedocs io en v4 5 x api html api https coverage readth
  • 为什么我已经安装了 RabbitMQ 却找不到“rabbitmq.config”文件?

    我正在运行 Red Hat Enterprise Linux 7 2 我已经安装了 RabbitMQ 并systemctl status rabbitmq server shows rabbitmq server service LSB 启
  • 使用多个实例和背景大小时,Firefox 背景图像闪烁

    因此 我在页面上有几个共享背景图像的元素 我的页面正在使用 bootstrap 并且两个元素都是 3 列宽度的容器 每个都有一个背景并通过背景大小包含 在第二个元素上 我将背景宽度设置为 90 因此它比其他背景稍小 在 Firefox 中
  • 如何在 Objective-c 中的应用程序的资源文件夹中保存文件

    我正在为 iPhone 开发一个 Objective C 应用程序 我的问题是我的应用程序必须保存从网址获取的图像 我认为该文件夹是只读的 这是我保存图像的代码 void banner NSString path NSData imageD
  • UITableView:自定义标题标题视图不显示

    我想显示一个带有自定义标题标题的表格 这table view被附加到一个controller class实现了tableview delegate和数据源协议 但不是其子类UIViewController因为该表是要显示在另一个表视图之上的
  • 使用 fread() 选择行和列,就像 read.csv.sql() 那样

    I know fread相对较新 但它确实提供了很大的性能改进 我想知道的是 您可以从您正在阅读的文件中选择行和列吗 有点像什么read csv sql做 我知道使用select的选项fread我们可以选择要读取的列 但是如何只读取满足特定
  • 强类型定义[重复]

    这个问题在这里已经有答案了 有什么方法可以制作类型的完整副本 以便可以在模板推导上下文中区分它们 举个例子 include