Types 定义(或重新定义)编译器将区分的类型(C+;+;) 我一直在尝试寻找一种在C++中做下面的方法,但是不能。我想没有办法,但我很感兴趣,因为我认为这是可能的

Types 定义(或重新定义)编译器将区分的类型(C+;+;) 我一直在尝试寻找一种在C++中做下面的方法,但是不能。我想没有办法,但我很感兴趣,因为我认为这是可能的,types,Types,我想定义一个类型,它本质上是一个int的重新定义,但它可以区分。例如,可以访问不同重载函数的索引(取决于其索引): 这是不必要的,但我认为最好避免意外地将错误的索引传递给为另一个函数设计的不同函数(从而触发编译器错误“函数无匹配调用(IndexB)”,而不是潜在的令人困惑的逻辑错误) 我试过使用typedef typedef int IndexA typedef int IndexB 但就编译器而言,这两个int似乎都有不同的名称 使用类或结构可能会实现这一点,但会涉及大量重写,对于这个简单的

我想定义一个类型,它本质上是一个int的重新定义,但它可以区分。例如,可以访问不同重载函数的索引(取决于其索引):

这是不必要的,但我认为最好避免意外地将错误的索引传递给为另一个函数设计的不同函数(从而触发编译器错误“函数无匹配调用(IndexB)”,而不是潜在的令人困惑的逻辑错误)

我试过使用typedef

typedef int IndexA
typedef int IndexB
但就编译器而言,这两个int似乎都有不同的名称

使用类或结构可能会实现这一点,但会涉及大量重写,对于这个简单的问题来说似乎有点过分


谢谢你的帮助,我很想知道这是否可行

据我所知,
typedef
单独使用是行不通的,但它是一种使用类包装器的解决方案(另请参见上面的内容)。

感谢您的帮助。从链接和相应的reddit讨论中,我发现我希望存在的行为几乎可以使用enum类IndexA:int{}复制;所以我用了它——非常适合我的需要!
typedef int IndexA
typedef int IndexB