> 백엔드 개발 > C++ > 템플릿 매개변수가 C 20 Consteval 함수의 함수 인수에 따라 달라질 수 있나요?

템플릿 매개변수가 C 20 Consteval 함수의 함수 인수에 따라 달라질 수 있나요?

DDD
풀어 주다: 2024-10-23 20:37:30
원래의
262명이 탐색했습니다.

Can Template Parameters Depend on Function Arguments in C  20 Consteval Functions?

함수 인수에 의존하는 구성 함수 및 템플릿 매개변수

C 17에서 템플릿 매개변수는 컴파일러가 여전히 함수 인수에 의존할 수 없습니다. 컴파일 타임에 평가되더라도 constexpr이 아닌 함수에 대한 런타임 지침을 생성해야 합니다.

C 20 Consteval 함수

C 20에서는 consteval 함수를 도입합니다. 런타임 제약 조건을 제거하여 컴파일 타임에 평가해야 합니다. 그러나 질문은 여전히 ​​남습니다. 이는 템플릿 매개변수가 이제 함수 인수에 종속될 수 있다는 뜻인가요?

종속 템플릿 매개변수에 대한 허용은 없습니다

consteval 함수가 도입되었음에도 불구하고 대답은 '아니요'입니다. 이 논문에서는 매개변수가 핵심 상수 표현식으로 취급되지 않는다는 점을 인정합니다. 이는 문서의 예에서 볼 수 있듯이 잠재적인 입력 불일치 때문입니다.

1

2

3

consteval int sqrsqr(int n) {

  return sqr(sqr(n)); // Not a constant-expression at this  point,

}                     // but that's okay.

로그인 후 복사

따라서 함수 매개변수는 상수 표현식으로 간주되지 않으므로 템플릿 매개변수가 함수 매개변수에 종속되지 않습니다.

위 내용은 템플릿 매개변수가 C 20 Consteval 함수의 함수 인수에 따라 달라질 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿