在模板中非法使用类型

Illegal use of type in template

我是模板新手。我不知道我做错了什么:

#include "stdafx.h"
#include <iostream>
using namespace std;

template <typename T>
void inc(T* data)
{
    (*T)++;
}

int main()
{
    char x = 'x';
    int b = 1602;

    inc<char>(&x);
    inc<int>(&b);
    cout << x << ", " << b << endl;

    int a = 0;
    cin >> a;
    return 0;
}

在 VS2013 中编译后出现错误: 错误 1 ​​error C2275: 'T' : 非法使用此类型作为表达式

也许你应该:

template <typename T>
void inc(T* data)
{
    (*data)++;
}

*T 试图取消对 data_type 的引用,这就是您收到错误的原因。

请将给定代码段的第 8 行替换为

(*data)++;