항목 26에서 나온 문제에 대하여 해결 방법을 알아보자. 2019/12/01 - [C++/Effective Modern C++] - [Effective Modern C++] 항목 26. 보편 참조에 대한 중복적재를 피하라 불러오는 중입니다... 중복적재를 포기한다 항목 26에서 사용한 logAndAdd 함수를 중복적재를 사용하다보니 문제가 발생하였다. 문제가 발생하는 함수에 대하여 함수 명을 logAnddAddNameIdx 와 같이 변경하면 문제를 해결할 수 있다. 그렇지만 생성자의 경우에는 함수명을 변경할 수 없기 때문에 해결할 수 없는 경우도 있다. const T& 매개변수를 사용한다. 보편 참조 매개변수 대신에 const에 대한 왼값 참조 매개변수를 사용할 수 있다. 이는 항목 26에서 사용한 방법..
오른값 참조를 사용할 때, 우리는 &&를 뒤에 붙여 오른값 참조임을 명시한다. 하지만 보편 참조의 경우에도 &&를 붙이기 때문에 구분해서 사용해야만 한다. 예시를 살펴보자. void f(Widget&& param); // 오른값 참조 Widget&& var1 = Widget(); // 오른값 참조 auto&& var2 = var1; // 오른값 참조 아님 template void f(std::vector&& param); // 오른값 참조 template void f(T&& param); // 오른값 참조 아님 언뜻보기에는 오른값 참조처럼 보이지만 보편 참조인 경우가 상당히 많다. 보편 참조의 의미는 오른값 참조이거나 왼값 참조 중 하나라는 의미이다. 보편 참조는 일반적으로 두 가지 문맥에서 나타난다. ..
- Total
- Today
- Yesterday
- Perfect
- async
- C++11
- 보편참조
- 다이소
- Effective
- Forwarding
- const
- C++
- 발아시기
- 람다
- C++14
- forward
- Overloading
- detach
- 포인터
- auto
- std::move
- Effective Modern C++
- Join
- C
- thread
- Modern
- CPP
- Future
- Override
- std::forward
- 보편 참조
- MOVE
- Unreal
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |