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
“过早优化是万恶之源”~“过早优化是万恶之源”~