使用#define表示if语句错误

时间:2015-09-25 02:41:02

标签: c++ if-statement typename

我试图使用下面的代码部分创建一个包含大量重复if语句的可读函数。

#define if_identifier(finder, to_find) if((finder = msg.find(to_find)) != std::string npos)

std::string Utility::Decode(const char* buffer, int &playerID) {
    std::string msg(buffer);
    size_t identifier;

    if_identifier(identifier, "P_ID:[") {

    }
}

为什么此代码会导致type name is not allowed错误?

1 个答案:

答案 0 :(得分:3)

因为垃圾std::string在那里。

尝试将std::string npos更改为std::string::npos