rvo

    0

    2답변

    RVO는 컴파일러 최적화이지만 실제로 유용한 성능 향상을 제공 할 수 있습니다. 그러나 그것은 보장되지 않으며 의존 할 수 없습니다. 언어 표준 자체에 반환 값을 최적화 할 수있는 것이 있습니까? 이동 구문은 여전히 ​​멤버 값을 복사하지만 올바른가?

    0

    2답변

    클래스가 있는데, std :: vector 데이터 멤버가 있습니다. 그런 다음 단순히 값으로 데이터 멤버를 반환하는 멤버 함수를 가져와야합니다. std::vector<boost::shared_ptr<MyClass>> my_vec = obj->getVector(); 이 86이 생성됩니다 : 나는 다음과 같은 C++ 호출하면 class X{ pub

    0

    1답변

    우리는 생성 된 임시 생성 수를 줄이는 방법을 보여주기 위해 RVO와 함께 작업하고 있습니다. 나는 그것의 기초를 얻지 만 여러 값을 결합하여 한 줄로 돌아가는 방법을 이해하는 데 어려움을 겪고 있습니다. const A operator + (const A &tmp) { return A(this->x + tmp.x); } 그러나 나는 여러 값

    8

    1답변

    범용 참조 인수가있는 생성자가있는 클래스에서 rvalue 최적화가 수행되지 않는 이유는 무엇입니까? http://coliru.stacked-crooked.com/a/672f10c129fe29a0 #include <iostream> template<class ...ArgsIn> struct C { template<class ...Args>

    1

    2답변

    예 : A myfunction() { return A(); } A a = myfunction(); // default ctor only (return value optimization) a = myfunction(); // default ctor and operator= 왜 컴파일러는 단지 기존 개체에 새 개체를 쓸 수 없습니다? 클래스의 모든 인스

    35

    2답변

    많은 경우에 함수에서 로컬을 반환 할 때 RVO가 실행됩니다. 그러나 std::move을 명시 적으로 사용하면 RVO가 발생하지 않을 때 적어도 RVO가 가능한 경우 계속 적용됩니다. 그러나 이것이 그렇지 않은 것으로 보입니다. #include "iostream" class HeavyWeight { public: HeavyWeight()

    0

    1답변

    벡터의 소유권을 전달하고 전달하는 가장 좋은 방법은 무엇이며 그 데이터는 무엇입니까? 이상적인 세계에서는 는,이 같은 뭔가를 작동합니다 :이 작동하지 않습니다 std::vector<int>& SpitAVector(int input) { std::vector<int> result; result.push_back(input); re

    0

    2답변

    우리가 출력 매개 변수가 void foo(set<int> *x) 여기서 X는 실제로 예상되는 매개 변수가 정말 나쁜 일을 것을 알고,이 리눅스 시스템 호출에서 매우 일반적이다. 그러나 C++의 경우 이는 좋은 코딩 방법이 아닙니다. 나는 문자열 목록을 역 추적하고 각 목록에서 가능한 모든 문자열 조합을 반환해야하는 시나리오가 있습니다. a b d e

    2

    3답변

    나는 약간의 가벼운 물건을 집어 넣고 조작해야한다. 나는 더 복잡한 물건에 넣고 싶다. 수정되지 않은 조회 테이블이 있습니다. 그 아이디어는 충분히 간단하지만, 이것을 행하는 한 줄 (b += c(a);)은 비싼 임시적인 것을 만듭니다. #include <vector> static int count; struct costly { /* std:

    4

    5답변

    -O2를 사용하여 Visual Studio 또는 최신 GCC를 사용한다고 가정 해 보겠습니다. 컴파일러가 func() 안에 S을 생성 한 다음 my_result에 복사하거나 (5, 6, 5 + 6) 생성자를 사용하여 my_result을 생성하고 S 임시 생성하지 않고 생성 하시겠습니까? 참고 :기능 func() 정의 및 용도는 별도의 .obj 파일입니다!