3

GCC でコンパイルすると、次のエラーが発生します。

error: declaration of 'static int utils::StringUtils::SplitString(const std::string&, const std::string&, std::vector<std::basic_string<char> >&, bool)' outside of class is not definition

コード:

ヘッダ:

namespace utils
{
    /*
    *   This class provides static String utilities based on STL library.
    */
    class StringUtils
    {
    public:
        /**
        *   Splits the string based on the given delimiter.
        *   Reference: http://www.codeproject.com/Articles/1114/STL-Split-String
        */
        static int SplitString( const std::string&              input, 
                                const std::string&              delimiter,
                                std::vector<std::string>&       results, 
                                bool includeEmpties =           true );
    };
};

ソース:

namespace utils
{
    int StringUtils::SplitString(   const std::string&          input, 
                                    const std::string&          delimiter,
                                    std::vector<std::string>&   results, 
                                    bool                        includeEmpties );
    {
    ....
    }
}
4

2 に答える 2

10

ソース ファイルの定義の末尾にあるセミコロンを削除してください。コピー&ペースト エラー =)

于 2012-07-31T22:45:40.823 に答える
6

ソース ファイルでそのセミコロンを削除する必要があると思います。次のようにする必要があります。

namespace utils
{
    int StringUtils::SplitString(   const std::string&          input, 
                                    const std::string&          delimiter,
                                    std::vector<std::string>&   results, 
                                    bool                        includeEmpties ) // <--- No more semi-colon!
    {
    ....
    }
}
于 2012-07-31T22:47:01.333 に答える