基本类型和类类型之间的性能差异

时间:2018-09-15 09:13:35

标签: c++

我想创建一个新的基本类型,例如byte

第一个想法是使用

enum class byte: unsigned char { };

但是,这种方法存在一个问题,我无法为其定义赋值运算符,因此无法完成int的赋值:

byte a = 42; // invalid, need to use something like "byte a = (byte)42;"

第二个想法是使用一个类:

class byte {
    private:
        unsigned char data;
    public:
        // operators
};

这种方法可行,但我担心这种方法的性能。

我的问题:

  • 该标准中是否有任何规则,使得我的byte类型比unsigned char的优化程度低?
  • 在优化平台(Windows,intel-linux,android,iOS)上的流行编译器(gcc,clang,msvc)的当前状态是什么?它们当前是否足够好,可以为byteunsigned char发出相同的代码?我对任何差异都感兴趣。

我知道的唯一区别是,在使用i386 System V ABI的平台(例如32位linux)上,byte是从堆栈中返回的,而不是从函数中注册的,因此它要少一些表演者。还有其他区别吗?

0 个答案:

没有答案