이 문맥에서 "typename ..."은 무엇을 의미합니까?

gghavoc

cppreference.com에서 이해할 수없는 코드를 찾았습니다. 링크 : Type Alias . dependent template-id내가 이해하지 못하는 이야기 입니다. 코드는 다음과 같습니다.

//When the result of specializing an alias template is a dependent template-id, 
//subsequent substitutions apply to that template-id:

template<typename...>
using void_t = void;
template<typename T>
void_t<typename T::foo> f();
f<int>();     // error, int does not have a nested type foo

VS 2019에서 마우스를 가져 가면 void_t<<이름 없음 이라고 표시됩니다.>...>

누구든지이 이름없는 typename이 어떻게 유용한 지 설명해 줄 수 있습니까?

진실 추적자

전달 된 템플릿 매개 변수 template<typename...> using void_t = void;void관계없이 유형이 추론 된 표현식에 대해 설명하겠습니다 . 예,

template<typename...>
   using void_t = void;

template <typename T>
void_t<T> fun1() {
    std::cout << "fun1 called" << std::endl;
}

int main() {
    fun1<int>();   //fun1 called
    fun1<float>(); //fun1 called
}

동일하게 확장하려면 중첩 된 유형 template<typename T>void_t<typename T::foo> f();만 허용 typename T합니다 T::foo. 예를 들면

template<typename...> 
   using void_t = void;

template<typename T>
        void_t<typename T::foo> f() {}

struct bar
{
    typedef int foo;
};
int main() {
    f<bar>(); //Valid expression as bar::foo is nested type of bar
    f<int>(); //Error because `int::foo`is not a nested type of `int`.
}

자세한 정보는 대체 실패는 오류가 아님을 참조하십시오.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 문맥에서`typedef`는 무엇을 의미합니까?

분류에서Dev

이 문맥에서 / var / named는 무엇을 의미합니까?

분류에서Dev

이 문맥에서> =는 무엇을 의미합니까

분류에서Dev

이 맥락에서 '문자 집합'은 무엇입니까?

분류에서Dev

이 템플릿 구문 "typename = T"는 무엇을 의미합니까?

분류에서Dev

이 문맥에서 C에서 int **는 무엇을 의미합니까?

분류에서Dev

이 문맥에서 약어 CMC는 무엇을 의미합니까?

분류에서Dev

이 구문은 Swift에서 무엇을 의미합니까?

분류에서Dev

사용자 에이전트의 맥락에서 U, I, N은 무엇을 의미합니까?

분류에서Dev

사용자 에이전트의 맥락에서 U, I, N은 무엇을 의미합니까?

분류에서Dev

asp : ObjectDataSource에서 TypeName = "API.MyClass + Clients"와 TypeName = "API.MyClass.Clients"의 차이점은 무엇입니까?

분류에서Dev

C :: *는 typename 인수에서 무엇을 의미합니까?

분류에서Dev

이 구문은 코 틀린에 무엇을 의미합니까?

분류에서Dev

이것은 Scala에서 foreach (_ => ()) 무엇을 의미합니까?

분류에서Dev

이것은 YAML에서 무엇을 의미합니까?

분류에서Dev

이 부분은 Netbeans (PHP)에서 무엇을 의미합니까?

분류에서Dev

Android, Intent (this, ........)에서 이것은 무엇을 의미합니까?

분류에서Dev

이 명령에서 2> & 1은 무엇을 의미합니까?

분류에서Dev

이것은 PHP에서 무엇을 의미합니까 ()->

분류에서Dev

이것은 "crontab -e"에서 무엇을 의미합니까?

분류에서Dev

PHP 에서이 정규식은 무엇을 의미합니까?

분류에서Dev

맨 페이지에서 .Er은 무엇을 의미합니까?

분류에서Dev

생성자에서 이것은 무엇을 의미합니까?

분류에서Dev

이 조건은 where 절에서 무엇을 의미합니까?

분류에서Dev

이 표현식 (({} + []) [+ []])은 JavaScript에서 무엇을 의미합니까?

분류에서Dev

이 명령에서 점은 무엇을 의미합니까?

분류에서Dev

이 코드에서! type은 무엇을 의미합니까?

분류에서Dev

FirebaseAuth Admin에서이 점은 무엇을 의미합니까?

분류에서Dev

파이썬에서 variable : expression은 무엇을 의미합니까?

Related 관련 기사

  1. 1

    이 문맥에서`typedef`는 무엇을 의미합니까?

  2. 2

    이 문맥에서 / var / named는 무엇을 의미합니까?

  3. 3

    이 문맥에서> =는 무엇을 의미합니까

  4. 4

    이 맥락에서 '문자 집합'은 무엇입니까?

  5. 5

    이 템플릿 구문 "typename = T"는 무엇을 의미합니까?

  6. 6

    이 문맥에서 C에서 int **는 무엇을 의미합니까?

  7. 7

    이 문맥에서 약어 CMC는 무엇을 의미합니까?

  8. 8

    이 구문은 Swift에서 무엇을 의미합니까?

  9. 9

    사용자 에이전트의 맥락에서 U, I, N은 무엇을 의미합니까?

  10. 10

    사용자 에이전트의 맥락에서 U, I, N은 무엇을 의미합니까?

  11. 11

    asp : ObjectDataSource에서 TypeName = "API.MyClass + Clients"와 TypeName = "API.MyClass.Clients"의 차이점은 무엇입니까?

  12. 12

    C :: *는 typename 인수에서 무엇을 의미합니까?

  13. 13

    이 구문은 코 틀린에 무엇을 의미합니까?

  14. 14

    이것은 Scala에서 foreach (_ => ()) 무엇을 의미합니까?

  15. 15

    이것은 YAML에서 무엇을 의미합니까?

  16. 16

    이 부분은 Netbeans (PHP)에서 무엇을 의미합니까?

  17. 17

    Android, Intent (this, ........)에서 이것은 무엇을 의미합니까?

  18. 18

    이 명령에서 2> & 1은 무엇을 의미합니까?

  19. 19

    이것은 PHP에서 무엇을 의미합니까 ()->

  20. 20

    이것은 "crontab -e"에서 무엇을 의미합니까?

  21. 21

    PHP 에서이 정규식은 무엇을 의미합니까?

  22. 22

    맨 페이지에서 .Er은 무엇을 의미합니까?

  23. 23

    생성자에서 이것은 무엇을 의미합니까?

  24. 24

    이 조건은 where 절에서 무엇을 의미합니까?

  25. 25

    이 표현식 (({} + []) [+ []])은 JavaScript에서 무엇을 의미합니까?

  26. 26

    이 명령에서 점은 무엇을 의미합니까?

  27. 27

    이 코드에서! type은 무엇을 의미합니까?

  28. 28

    FirebaseAuth Admin에서이 점은 무엇을 의미합니까?

  29. 29

    파이썬에서 variable : expression은 무엇을 의미합니까?

뜨겁다태그

보관