변수 템플릿을 사용하여 다른 변수 템플릿을 선언 할 수 있습니까?

크리스

C ++ 14 (그리고 이미 지원하는 Clang)에서 제공되는 변수 템플릿과 표준 is_same_v및 유사 유형 특성에 대한 제안 을 통해 다음과 같이 새로운 유형 특성을 만들 수 있다는 것이 깔끔 할 것이라고 생각했습니다.

template<typename T>
constexpr bool is_const_and_volatile{std::is_const_v<T> && std::is_volatile_v<T>};

아아, 이로 인해 다음 SSCCE와 동일한 오류가 발생합니다 ( 아래에 언급 된 모든 내용 포함됨 ).

#include <type_traits>

template<typename T>
constexpr bool is_pointer{std::is_pointer<T>::value};

template<typename T>
constexpr bool foo{is_pointer<T>};

int main() {
    //foo<int *>;
}

main주석이 달린 줄과 함께 Clang은 다음을 뱉어냅니다.

경고 : 변수 is_pointer<type-parameter-0-0>에 내부 연결이 있지만 정의되지 않았습니다.

그것은 (변경주의 나에게 정의 외모 Tint *에서 foo작품 벌금). 의 라인 주석을 main인스턴스화가 foo(다시 제공 Tint *작품의 벌금)

오류 : constexpr 변수 foo<int *>는 상수 표현식으로 초기화해야합니다.

그러나 foo다음과 같은 이전 구문으로 바꾸면 두 인스턴스가 모두 제대로 작동합니다.

constexpr bool foo{std::is_pointer<T>::value};

변수 템플릿에 대해 내가 놓친 것이 있습니까? 새로운 변수 템플릿을 구축 할 수있는 방법이 함께 그들, 또는 내가 새로 구축하고 다른 코드를 사용하는 경우에만 문법 설탕을 즐길 수있는 오래된 구문을 사용하도록 강요입니까?

리처드 스미스

코드가 유효하며 clang SVN에서 승인되었습니다. 링크 오류는 내가 며칠 전에 수정clang 버그 17846 으로 인해 발생했습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 템플릿의 HTML을 사용하여 meteor의 템플릿 본문을 어떻게 변경할 수 있습니까?

분류에서Dev

메타 프로그래밍을 사용하여 가변 템플릿에서 변수를 선언 할 수 없습니다.

분류에서Dev

하나의 jade 템플릿에 다른 jade 템플릿 파일을 포함 할 수 있습니까?

분류에서Dev

템플릿 함수를 다른 템플릿의 매개 변수로 사용할 수 있습니까?

분류에서Dev

변수 대체를 위해 속도 템플릿에서 다른 패턴을 사용할 수 있습니까?

분류에서Dev

템플릿 함수가 매개 변수 팩을 사용할 때 다른 템플릿 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

angularjs와 함께 다른 템플릿 엔진을 사용할 수 있습니까?

분류에서Dev

페이지 매김에 다른 템플릿을 사용할 수 있습니까?

분류에서Dev

템플릿 템플릿 매개 변수와 함께 개념을 사용할 수 있습니까?

분류에서Dev

Django의 하위 템플릿에 템플릿을 포함 할 수 없습니다.

분류에서Dev

템플릿 클래스가 매개 변수 팩을 사용할 때 다른 템플릿 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

클래스 템플릿이 정수를 사용할 때 멤버 선언을 찾을 수 없습니다.

분류에서Dev

템플릿 매개 변수에 decltype을 사용할 수 있습니까?

분류에서Dev

가변 템플릿을 템플릿 템플릿 인수로 전달할 수 있습니까?

분류에서Dev

Pebbles StringLoader를 재사용하여 다른 템플릿을로드 할 수 있습니까?

분류에서Dev

템플릿 매개 변수의 유형을 확인하고 다른 템플릿을 사용합니다.

분류에서Dev

템플릿 상수 유형을 어떻게 선언 할 수 있습니까?

분류에서Dev

C ++의 다른 템플릿 함수에서 템플릿 클래스에 속하는 중첩 유형을 어떻게 사용할 수 있습니까?

분류에서Dev

한 템플릿 선언의 기본 템플릿 매개 변수를 다른 템플릿에 사용

분류에서Dev

템플릿을 사용할 때 왜 앞으로 선언을 사용할 수 없습니까?

분류에서Dev

HTML 템플릿을 사용하여 어떻게 출력 할 수 있습니까?

분류에서Dev

갠트리가 아닌 템플릿 (일반 HTML 템플릿)을 joomla 용 Gantry 템플릿으로 변환 할 수 있습니까?

분류에서Dev

현재 클래스 템플릿을 다른 템플릿의 템플릿 매개 변수로 사용하는 방법은 무엇입니까?

분류에서Dev

변수 또는 매개 변수에서 "속성 값 템플릿"을 사용할 수 있습니까?

분류에서Dev

변수 또는 매개 변수에서 "속성 값 템플릿"을 사용할 수 있습니까?

분류에서Dev

일종의 선택기 또는 변수를 사용하여 중복 템플릿을 단일 템플릿으로 통합합니다.

분류에서Dev

cloudformation의 상위 템플릿에서 내부 (자식) 템플릿의 출력을 사용할 수 없습니다.

분류에서Dev

C ++ 템플릿 및 상속, 템플릿을 더 선택적으로 사용할 수 있음

분류에서Dev

정규식 (또는보다 일반적인 템플릿)을 사용하여 변수를 정의 할 수 있습니까?

Related 관련 기사

  1. 1

    다른 템플릿의 HTML을 사용하여 meteor의 템플릿 본문을 어떻게 변경할 수 있습니까?

  2. 2

    메타 프로그래밍을 사용하여 가변 템플릿에서 변수를 선언 할 수 없습니다.

  3. 3

    하나의 jade 템플릿에 다른 jade 템플릿 파일을 포함 할 수 있습니까?

  4. 4

    템플릿 함수를 다른 템플릿의 매개 변수로 사용할 수 있습니까?

  5. 5

    변수 대체를 위해 속도 템플릿에서 다른 패턴을 사용할 수 있습니까?

  6. 6

    템플릿 함수가 매개 변수 팩을 사용할 때 다른 템플릿 매개 변수를 전달하는 방법은 무엇입니까?

  7. 7

    angularjs와 함께 다른 템플릿 엔진을 사용할 수 있습니까?

  8. 8

    페이지 매김에 다른 템플릿을 사용할 수 있습니까?

  9. 9

    템플릿 템플릿 매개 변수와 함께 개념을 사용할 수 있습니까?

  10. 10

    Django의 하위 템플릿에 템플릿을 포함 할 수 없습니다.

  11. 11

    템플릿 클래스가 매개 변수 팩을 사용할 때 다른 템플릿 매개 변수를 전달하는 방법은 무엇입니까?

  12. 12

    클래스 템플릿이 정수를 사용할 때 멤버 선언을 찾을 수 없습니다.

  13. 13

    템플릿 매개 변수에 decltype을 사용할 수 있습니까?

  14. 14

    가변 템플릿을 템플릿 템플릿 인수로 전달할 수 있습니까?

  15. 15

    Pebbles StringLoader를 재사용하여 다른 템플릿을로드 할 수 있습니까?

  16. 16

    템플릿 매개 변수의 유형을 확인하고 다른 템플릿을 사용합니다.

  17. 17

    템플릿 상수 유형을 어떻게 선언 할 수 있습니까?

  18. 18

    C ++의 다른 템플릿 함수에서 템플릿 클래스에 속하는 중첩 유형을 어떻게 사용할 수 있습니까?

  19. 19

    한 템플릿 선언의 기본 템플릿 매개 변수를 다른 템플릿에 사용

  20. 20

    템플릿을 사용할 때 왜 앞으로 선언을 사용할 수 없습니까?

  21. 21

    HTML 템플릿을 사용하여 어떻게 출력 할 수 있습니까?

  22. 22

    갠트리가 아닌 템플릿 (일반 HTML 템플릿)을 joomla 용 Gantry 템플릿으로 변환 할 수 있습니까?

  23. 23

    현재 클래스 템플릿을 다른 템플릿의 템플릿 매개 변수로 사용하는 방법은 무엇입니까?

  24. 24

    변수 또는 매개 변수에서 "속성 값 템플릿"을 사용할 수 있습니까?

  25. 25

    변수 또는 매개 변수에서 "속성 값 템플릿"을 사용할 수 있습니까?

  26. 26

    일종의 선택기 또는 변수를 사용하여 중복 템플릿을 단일 템플릿으로 통합합니다.

  27. 27

    cloudformation의 상위 템플릿에서 내부 (자식) 템플릿의 출력을 사용할 수 없습니다.

  28. 28

    C ++ 템플릿 및 상속, 템플릿을 더 선택적으로 사용할 수 있음

  29. 29

    정규식 (또는보다 일반적인 템플릿)을 사용하여 변수를 정의 할 수 있습니까?

뜨겁다태그

보관