컴파일러 오류 C3615
constexpr 함수 'function'은 상수 식을 생성할 수 없습니다.
함수 함수 를 컴파일 시와 같이 constexpr
평가할 수 없습니다. 함수는 다른 constexpr
함수만 호출할 constexpr
수 있습니다.
예시
조건부 평가 작업의 왼쪽 피연산자가 컨텍스트에서 유효하지 않은 경우 Visual Studio 2017에서 constexpr
오류를 올바르게 발생합니다. 다음 코드는 Visual Studio 2015에서 컴파일되지만 Visual Studio 2017에서는 컴파일되지 않습니다.
// C3615.cpp
// Compile with: /c
template<int N>
struct myarray
{
int size() const { return N; }
};
constexpr bool f(const myarray<1> &arr)
{
return arr.size() == 10 || arr.size() == 11; // C3615 starting in Visual Studio 2017
}
이 문제를 해결하려면 함수를 array::size()
로 constexpr
선언하거나 한정자를 constexpr
제거 f
합니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기