개발하는 리프터 꽃게맨입니다.
[C++] most vexing parse, 성가신 파싱 본문
most vexing parse 이하 성가신 파싱은 선언으로 해석할 수 있는 것은 선언으로 해석해야 한다.는 규칙이다.
예를 들어 아래같은 코드를 보자.
여기서 MyClass a() 를 생각해보자.
이 구문은 2가지로 해석될 여지가 있다.
1. 함수 선언
2. 객체의 생성 (기본생성자 호출)
그런데 '성가신 파싱'에 의해 무조건 '선언'으로 해석된다.
분명 생성자는 호출했다고 생각했는데
생성자가 호출이 안된 것을 볼 수 있다.
따라서 '성가신 파싱'을 회피하기 위해서 객체를 선언하고 싶다면 언제나 중괄호 초기화를 사용하는 것을 권장한다.
'언어 > C, C++' 카테고리의 다른 글
[물방울책 정리] Chapter 10: Stenciling (3) | 2024.10.06 |
---|---|
[C++] 이벤트 예약 및 함수 지연 처리 구현 (1) | 2024.02.09 |
[C++] 람다 식 (Lambda) (1) | 2024.01.19 |
[C++] 스마트 포인터 - 2 (shared_ptr, weak_ptr) (0) | 2024.01.18 |
[C++] 스마트 포인터 - 1 (unique_ptr, unique_ptr 설계) (0) | 2024.01.17 |