错误:'<'之前的预期unqualified-id令牌|

时间:2011-06-22 10:44:45

标签: c++

我收到以下错误:

preprocessor_directives.cpp|15|error: expected unqualified-id before '<' token|
preprocessor_directives.cpp|26|error: expected `;' before "int"|
||=== Build finished: 2 errors, 0 warnings ===|
#include <iostream>

using namespace std;

// Avoid. Using #define for constants
#define MY_CONST1 1000

// Use. Equivalent constant definition
const int MY_CONST2 = 2000;

// Avoid. Using #define for function like macros
#define SQR1(x) (x*x)

// Use. Equivalent function definition
inline template <typename T>
T SQR2 ( T a ) {
    return a*a;
}
// Writing #define in multiple lines
#define MAX(a,b) \
((a) > (b) ? (a) : (b))

// Compile time flags
#define DEBUG

int main()
{
    cout << "SQR1 = " << SQR1(10) << endl;
    cout << "SQR2 = " << SQR2(10) << endl;
    cout << "MAX = " << MAX(10,11) << endl;
    cout << "MY_CONST1 = " << MY_CONST1 << endl;
    cout << "MY_CONST2 = " << MY_CONST2 << endl;

    return 0;
}

2 个答案:

答案 0 :(得分:10)

inline关键字后移动template关键字。

template <typename T> inline
T SQR2 ( T a ) {
    return a*a;
}

答案 1 :(得分:6)

template <typename T>
inline T SQR2 ( T a ) {
    return a*a;
}