static이 아닌 constexpr 속성을 사용하여 struct의 멤버를 만들려고하면 컴파일러 오류가 발생합니다 (아래 참조). 왜 그런가요? 단일 상수 값에 대해 구조체의 범위 대신 프로그램이 종료 될 때까지이 값을 메모리에 저장합니까? 매크로를 사용하려면 다시해야합니까?왜 constexpr은 정적이어야합니까?
struct foo
{
constexpr int n = 10;
// ...
};
error: non-static data member cannot be constexpr; did you intend to make it static?
음, 복사하는 것이별로 의미가 없을 것입니다. – Ben
구조체의 각 인스턴스마다 하나씩 여러 번보다 정적 메모리에서 훨씬 좋습니다. – chris
왜 각 객체에 대해'constexpr'의 복사본을 가지고 있습니까? –