0

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

#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 ​​错误 C2275:'T':非法使用这种类型作为表达式

4

2 回答 2

1

也许你应该:

template <typename T>
void inc(T* data)
{
    (*data)++;
}
于 2017-02-27T07:32:12.287 回答
1

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

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

(*data)++;
于 2017-02-27T07:37:12.200 回答