gpt4 book ai didi

C++ 速度/效率 : Create a Temporary or Decompose an argument for DRY mutually exclusive functions?

转载 作者:太空宇宙 更新时间:2023-11-04 16:26:09 25 4
gpt4 key购买 nike

从速度和效率的角度来看:哪个被认为是最佳实践,是创建一个临时对象还是分解一个(可能是临时的)参数对象?

在这个例子中,为了 DRY 目的,函数的实现是互斥的。两者都不会如图所示实现,但将根据另一个实现,后者将委托(delegate)实际工作。

void SetPoints(double xA, double yA, double xB, double yB, double xC, double yC);
void SetPoints(const Point& A, const Point& B, const Point& C);

///Option one: create temporary objects:
void SetPoints(double xA, double yA, double xB, double yB, double xC, double yC) {
SetPoints(Point(xA, yA), Point(xB, yB), Point(xC, yC));
}

//Option two: decompose object arguments
void SetPoints(const Point& A, const Point& B, const Point& C) {
SetPoints(A.GetX(), A.GetY(), B.GetX(), B.GetY(), C.GetX(), C.GetY());
}

最佳答案

极有可能完全不相关。编译器甚至可能不会为两者生成不同的程序集,即使生成了不同的程序集,微小 thunk 的性能成本也可以忽略不计。甚至没有理由考虑这个。

在这种情况下,最好的功能是最清晰的功能/等等。

关于C++ 速度/效率 : Create a Temporary or Decompose an argument for DRY mutually exclusive functions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11857645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com