인프런 커뮤니티 질문&답변

seungmin38님의 프로필 이미지
seungmin38

작성한 질문수

홍정모의 따라하며 배우는 C++

static_assert 매개변수 관련 질문

해결된 질문

작성

·

297

·

수정됨

0

#include <iostream>
#include <vector>
#include <cassert>

using namespace std;

void printVector(vector<int>& temp, const int index)
{
	assert(index >= 3);
	static_assert(index >= 3, "index should be less than 3");//여기서 컴파일 에러
}

int main()
{
	std::vector<int> vec{ 1,2,3,4,5 };
	
	printVector(vec, 3);
}

static_assert 에서 에러가 나는데

매개변수를 const 상수화 해도 static_assert문에서 에러가 나는 이유가 뭔가요?

답변 1

0

https://cplusplus.com/forum/beginner/115138/

위 링크를 보면 static_assert는 compile time에 수행되기 때문에

컴파일 당시 값을 확정지을 수 없는 값에 대해서는 (런타임에 결정되는값은)

사용할 수 없다고 나와 있습니다.

 

런타임 assertion이 필요하다면 아래를 사용하면 된다고 나와 있네요.

assert() in <cassert> http://en.cppreference.com/w/cpp/error/assert

seungmin38님의 프로필 이미지
seungmin38

작성한 질문수

질문하기