Visual C ++에서 템플릿 함수의 템플릿이 잘못된 이유

norikoSD

Visual C ++ 2013에서 템플릿 함수 템플릿을 사용하는 것은 유효하지 않습니다. 먼저 템플릿 함수 포인터 (T에서 문자열로 변환하는 데 사용됨)를 정의했습니다.

template<class T>
struct TemplateFn
{
    typedef string(*T2STRING)(T);
};

그리고 다른 템플릿 함수를 정의했습니다.

 template<class T>
 vector<string> Vector2StringVector(vector<T> a_vt, TemplateFn<T>::T2STRING a_fn)
 {
    auto vtString = vector<string>();
    for (auto i = a_vt.begin(); i != a_vt.end(); i++)
    {
        vtString.push_back(a_fn(*i));
    }
    return vtString;
 }

그리고 컴파일러는 오류를 출력합니다. C2061 SYNTAX ERROR : IDENTIFIER 'T2STRING'마지막으로 코드를 아래와 같이 변경합니다.

 template<class T>
 vector<string> Vector2StringVector(vector<T> a_vt, string(*T2STRING)(T))
 {
     auto vtString = vector<string>();
     for (auto i = a_vt.begin(); i != a_vt.end(); i++)
     {
         vtString.push_back(T2STRING(*i));
     }
     return vtString;
 }

그리고 괜찮습니다. 그래서 그것은 나에게 너무 연결되어 있습니다. TemplateFn :: T2STRING과 같은 방식으로 사용하는 우아한 방법이 있습니까? 감사

Bipll

T2STRING은 종속 중첩 유형이므로 컴파일러에 힌트를 제공해야합니다. 함수 헤더를 다음으로 변경하십시오.

 vector<string> Vector2StringVector(vector<T> a_vt, typename TemplateFn<T>::T2STRING a_fn)

BTW, std::transform(추가로 std::back_inserter) 다시 구현하려고하지 않습니까?

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++ 템플릿 전문화-형식이 아닌 템플릿 매개 변수 '__formal'에 대한 잘못된 형식

분류에서Dev

GSP 템플릿이 다른 템플릿에서 전달 된 템플릿을 검색하지 못함

분류에서Dev

Visual C ++의 무순 맵에서 상속 할 때 템플릿 인수의 잘못된 sizeof ()

분류에서Dev

동일한 템플릿 구조 함수 내에서 템플릿 템플릿 매개 변수로 전달되는 C ++ 템플릿 자체 이름

분류에서Dev

enable_if 및 is_same이 있고 C ++에서 클래스 템플릿의 인수 목록이 누락 된 여러 템플릿 함수

분류에서Dev

C ++의 템플릿 이해

분류에서Dev

시뮬레이션 된 템플릿에 대한 C의 오류

분류에서Dev

C ++ 템플릿 : int에 매핑 할 유형 이름 및 함수

분류에서Dev

곡물이 포함 된 saltstack 템플릿-잘못된 대체

분류에서Dev

함수 C ++에서 크기가 지정된 반환 유형이있는 템플릿?

분류에서Dev

템플릿 클래스의 템플릿 typef가 잘못된 구문 인 이유는 무엇입니까?

분류에서Dev

가변 템플릿 함수를 호출하면 Visual Studio 2015에서 오류 C2660이 발생합니다.

분류에서Dev

C ++에서 템플릿없이 템플릿과 유사한 코드 구성

분류에서Dev

Visual Studio 2013에 설치된 템플릿이 없음

분류에서Dev

C ++에서 템플릿 클래스 인수 줄이기

분류에서Dev

템플릿 클래스를 C ++에서 템플릿이 아닌 클래스로 "래핑"할 수 있습니까?

분류에서Dev

C ++ 템플릿 : 기본 클래스에서 파생 된 템플릿 클래스의 멤버 함수 호출

분류에서Dev

복합 템플릿이 여러 개인 서버 템플릿이 잘못 적용된 경우

분류에서Dev

Person 예제에서 파생 된 TDE 템플릿이 실패 함

분류에서Dev

가변 템플릿 템플릿 : 매개 변수 팩에는 유형 템플릿이 필요합니다.

분류에서Dev

템플릿 함수에서 'const int *'에서 'int *'로의 잘못된 변환

분류에서Dev

C ++ 템플릿; 템플릿 인수로 전달 된 함수의 자동 공제 반환 유형;

분류에서Dev

Angular ng-template : 호출 된 템플릿 내에서 컨테이너 템플릿의 액세스 방법?

분류에서Dev

Magento 2에서 options_container 템플릿이 정의 된 위치

분류에서Dev

템플릿 클래스의 멤버 함수에 대한 C ++ 이름 확인

분류에서Dev

extbase 작업에 항상 잘못된 유동 템플릿이 표시됨

분류에서Dev

템플릿 함수 C ++에서 유형 이름의 서명을 변경하는 방법

분류에서Dev

C ++ 17 기본 템플릿 인수 : 인수 목록없이 잘못된 template-name 사용

분류에서Dev

유형이 변경된 함수간에 템플릿 객체 전달

Related 관련 기사

  1. 1

    C ++ 템플릿 전문화-형식이 아닌 템플릿 매개 변수 '__formal'에 대한 잘못된 형식

  2. 2

    GSP 템플릿이 다른 템플릿에서 전달 된 템플릿을 검색하지 못함

  3. 3

    Visual C ++의 무순 맵에서 상속 할 때 템플릿 인수의 잘못된 sizeof ()

  4. 4

    동일한 템플릿 구조 함수 내에서 템플릿 템플릿 매개 변수로 전달되는 C ++ 템플릿 자체 이름

  5. 5

    enable_if 및 is_same이 있고 C ++에서 클래스 템플릿의 인수 목록이 누락 된 여러 템플릿 함수

  6. 6

    C ++의 템플릿 이해

  7. 7

    시뮬레이션 된 템플릿에 대한 C의 오류

  8. 8

    C ++ 템플릿 : int에 매핑 할 유형 이름 및 함수

  9. 9

    곡물이 포함 된 saltstack 템플릿-잘못된 대체

  10. 10

    함수 C ++에서 크기가 지정된 반환 유형이있는 템플릿?

  11. 11

    템플릿 클래스의 템플릿 typef가 잘못된 구문 인 이유는 무엇입니까?

  12. 12

    가변 템플릿 함수를 호출하면 Visual Studio 2015에서 오류 C2660이 발생합니다.

  13. 13

    C ++에서 템플릿없이 템플릿과 유사한 코드 구성

  14. 14

    Visual Studio 2013에 설치된 템플릿이 없음

  15. 15

    C ++에서 템플릿 클래스 인수 줄이기

  16. 16

    템플릿 클래스를 C ++에서 템플릿이 아닌 클래스로 "래핑"할 수 있습니까?

  17. 17

    C ++ 템플릿 : 기본 클래스에서 파생 된 템플릿 클래스의 멤버 함수 호출

  18. 18

    복합 템플릿이 여러 개인 서버 템플릿이 잘못 적용된 경우

  19. 19

    Person 예제에서 파생 된 TDE 템플릿이 실패 함

  20. 20

    가변 템플릿 템플릿 : 매개 변수 팩에는 유형 템플릿이 필요합니다.

  21. 21

    템플릿 함수에서 'const int *'에서 'int *'로의 잘못된 변환

  22. 22

    C ++ 템플릿; 템플릿 인수로 전달 된 함수의 자동 공제 반환 유형;

  23. 23

    Angular ng-template : 호출 된 템플릿 내에서 컨테이너 템플릿의 액세스 방법?

  24. 24

    Magento 2에서 options_container 템플릿이 정의 된 위치

  25. 25

    템플릿 클래스의 멤버 함수에 대한 C ++ 이름 확인

  26. 26

    extbase 작업에 항상 잘못된 유동 템플릿이 표시됨

  27. 27

    템플릿 함수 C ++에서 유형 이름의 서명을 변경하는 방법

  28. 28

    C ++ 17 기본 템플릿 인수 : 인수 목록없이 잘못된 template-name 사용

  29. 29

    유형이 변경된 함수간에 템플릿 객체 전달

뜨겁다태그

보관