나는,주의에서 [24.4.7] 마지막으로 C++의 - 표준 문서 N3291 max 경악하지 constexpr : template<class T> const T& max(const T& a, const T& b);
따라서, 예를 들어 static_assert에서 사용할 수 없습니다. 옳은? static_assert(max(sizeof(int),sizeof
주어진 구조체 유형이 POD인지 여부를 테스트하는 C++ 0x static_assert을 갖고 싶습니다. 다른 프로그래머가 실수로 새 멤버를 사용하지 못하게합니다. 즉, struct A // is a POD type
{
int x,y,z;
}
struct B // is not a POD type (has a nondefault ctor)
노출이 Visual C++ 10 had built-in static_assert입니다. 그러나 다음 void test()
{
static_assert(sizeof(char) == 1, "");
}
나는 오류 C3861를 얻을 내가 컴파일 할 때 'static_assert'를 찾을 수 없습니다 식별자를 내가 잘못하고 오전 방법은 내가 비주얼에
정적 로컬 변수에서만 잘 작동하는 매크로가 있습니다 (인라인 어셈블리 표기법을 사용하여 변수에 대한 데이터를 추출하기 때문에). 없음 (나는 C에 대한 GCC와 함께 작동 func f()
{
int x;
my_macro(x);
}
: 올바른 : 정확하지 func f()
{
static int x;
my_macro