0\false\nullptr
0\false\nullptr
으로 강제로 포드 유형을 초기화하는 방법은 있습니까? Visual C++ 릴리스 모드? 코드를 변경하지 않고 Visual C++에서 POD 유형의 값 초기화를 강제하는 방법은 무엇입니까?
0\false\nullptr.
으로 초기화 포드 유형과 컴파일, 내 코드를 변경하지 않으 더 구체적으로.
0\false\nullptr
0\false\nullptr
으로 강제로 포드 유형을 초기화하는 방법은 있습니까? Visual C++ 릴리스 모드? 코드를 변경하지 않고 Visual C++에서 POD 유형의 값 초기화를 강제하는 방법은 무엇입니까?
0\false\nullptr.
으로 초기화 포드 유형과 컴파일, 내 코드를 변경하지 않으 더 구체적으로.
예, 값 초기화가 수행합니다.
struct pod {
int a, b;
char c;
double d;
};
pod myPod = pod(); // Value-initialized, all members are 0.
C++ 11에서는 클래스 정의에 기본값을 할당 할 수도 있지만 Visual Studio에서는 아직이를 지원하지 않습니다.
struct pod {
int a = 0, b = 0;
char c = 0;
double d = 0.0;
};
pod myPod; // All members would be initialized to 0.
문제는 코드베이스가 커서 코드를 다시 작성하지 않아도된다는 것입니다. –
@ViktorSehr : 코드를 변경하지 않고 코드가 현재와 다른 방식으로 작동하도록 하시겠습니까? – ereOn
당신이 할 수있는 최선의 방법은 동적으로 할당 된 모든 메모리를 zero-initialize하기 위해'operator new'를 오버로드하는 것입니다,하지만 스택에 할당 된 POD는 아마 쓸모가 없습니다. –
C++ 컴파일러에는 여러 단계가 있음을 이해해야합니다. 함수 내부의 'int i'문은 코드 생성 단계에도 도달하지 않습니다. 컴파일러에서이 기능을 구현해야하는 경우 즉시 코드를 다시 작성해야합니다. 최악의 경우는 아마도 new int [expr] 표현식이고, 생성자는 좋은 초이다. – MSalters