핵심 요약
- 한 해외 개발자가 이름과 실제 동작이 정반대이거나 모순되는 C++의 대표적인 문법과 함수들을 풍자한 'C++ 거짓말 목록'을 공유했습니다.
- std::move가 이동시키지 않는다는 점부터 inline이 인라인화하지 않고 static이 동적인 특성까지, 개발자들이 흔히 겪는 황당한 함정들이 위트 있게 나열되어 웃음을 자아냅니다.
- 작성자는 이 목록이 C++의 가변 인자(variadic)처럼 끝없이 열려 있다며 다른 개발자들의 추가 제보를 독려했습니다.
번역 다들 잘 지내고 계신가요, 동료 테스터 여러분! 우리 다들 C++로 이것저것 테스트하는 거 정말 좋아하잖아요.
오늘의 주제: C++ 속 거짓말, 새빨간 거짓말, 그리고 통계의 가변 길이(variadic) 목록입니다.
- `std::move`는 이동시키지 않는다
- `std::forward`는 전달하지 않는다
- `std::vector`는 방향성이 없다
- `std::random_device`는 둘 다 아니다 (랜덤도 장치도 아님)
- `std::invoke`의 결과는 반환할 수 없다
- `std::optional<void>`
- 0은 10진수가 아니다
- `-`는 정수를 음수로 만들지 않는다
- mutable const (이건 뭐 더 말할 필요도 없겠죠!)
- `intmax_t`는 최대 크기가 아닐 수도 있고, `std::numeric_limits<...>::min` 역시 최소값이 아닐 수 있다
- `inline`은 인라인화하지 않는다
- `static`은 동적(dynamic)이다
- `std::unreachable`은 실행된다
- 무한 루프는 실행되지 않는다...
(이 목록은 가변 길이 인자처럼 끝이 없으니 언제든 자유롭게 추가해 주세요! 단, 가변 길이는 유지하는 걸로 합시다.)
Sponsored · 광고