extra qualification error in C++

后端 未结 5 1463
轮回少年
轮回少年 2020-11-30 01:37

I have a member function that is defined as follows:

Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString);

When

5条回答
  •  悲哀的现实
    2020-11-30 01:52

    This is because you have the following code:

    class JSONDeserializer
    {
        Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString);
    };
    

    This is not valid C++ but Visual Studio seems to accept it. You need to change it to the following code to be able to compile it with a standard compliant compiler (gcc is more compliant to the standard on this point).

    class JSONDeserializer
    {
        Value ParseValue(TDR type, const json_string& valueString);
    };
    

    The error come from the fact that JSONDeserializer::ParseValue is a qualified name (a name with a namespace qualification), and such a name is forbidden as a method name in a class.

提交回复
热议问题