C++ C++;构造函数转换时运算符重载

C++ C++;构造函数转换时运算符重载,c++,performance,operator-overloading,C++,Performance,Operator Overloading,所以我不太确定这个标题是否能很好地描述这个问题。本质上,我想知道我是否有一个类a,它有一个来自const的构造函数和B和C,例如,如果我有操作符*=,它将以a*=a,a*=B和a*=C的形式工作。现在,如果使用SFINAE,我可以分别为这三种情况编写这篇文章,其中单个A*=B和A*=C可能只快了一小部分,我是否应该为A*=A而费心实施或仅仅实施就足够了 可能只是一个很小的差距更快,我甚至应该麻烦实施吗 以下是决策过程: 我的代码有效吗 对 我的用户是否在抱怨我的程序或库运行缓慢?例如,他们没有一

所以我不太确定这个标题是否能很好地描述这个问题。本质上,我想知道我是否有一个类
a
,它有一个来自
const的构造函数和
B
C
,例如,如果我有操作符
*=
,它将以
a*=a
a*=B
a*=C
的形式工作。现在,如果使用SFINAE,我可以分别为这三种情况编写这篇文章,其中单个
A*=B
A*=C
可能只快了一小部分,我是否应该为
A*=A
而费心实施或仅仅实施就足够了

可能只是一个很小的差距更快,我甚至应该麻烦实施吗

以下是决策过程:

  • 我的代码有效吗

  • 我的用户是否在抱怨我的程序或库运行缓慢?例如,他们没有一个病毒扫描程序占用所有可用的CPU并破坏磁盘 是的,他们真的有理由抱怨

  • 我是否分析了代码并将问题缩小到这个重载操作符

  • 真的吗?我不相信你,请再查一遍
  • 不,真的是这样

  • 那好吧,我想你最好实现那个额外的操作符。祝贺您,现在您有了另一个代码路径,可以在该软件的剩余生命周期中进行调试和维护
  • 俗话说:“过早的乐观是各种罪恶的根源。”。它只会为你的同事工作,让你把时间集中在所有错误的地方

    可能只是一个很小的差距更快,我甚至应该麻烦实施吗

    以下是决策过程:

  • 我的代码有效吗

  • 我的用户是否在抱怨我的程序或库运行缓慢?例如,他们没有一个病毒扫描程序占用所有可用的CPU并破坏磁盘 是的,他们真的有理由抱怨

  • 我是否分析了代码并将问题缩小到这个重载操作符

  • 真的吗?我不相信你,请再查一遍
  • 不,真的是这样

  • 那好吧,我想你最好实现那个额外的操作符。祝贺您,现在您有了另一个代码路径,可以在该软件的剩余生命周期中进行调试和维护

  • 俗话说:“过早的乐观是各种罪恶的根源。”。它只会让你的同事工作,让你把时间集中在所有错误的地方。

    不要用散文来描述你的代码——展示实际的代码。它值千言万语。SFINAE与模板函数一起使用。你的描述中没有提到模板。有吗?SFINAE是如何进入画面的?为什么你不能简单地写三个重载的
    操作符*=
    ,相应地取
    A
    B
    C
    ?不要用散文描述你的代码-显示实际的代码。它值千言万语。SFINAE与模板函数一起使用。你的描述中没有提到模板。有吗?SFINAE是如何进入画面的?为什么你不能简单地编写三个重载的
    操作符*=
    ,相应地使用
    A
    B
    C
    “过早优化是万恶之源”~“过早优化是万恶之源”~