해결된 질문
작성
·
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