0
int webServerPort = -1;    

void configure(std::string responseFile, callback_function call_back, std::string urlRegex = NULL) {
        std::string url = "http://0.0.0.0:" + webServerPort + "fake_settings/?file=" + responseFile;
        if(urlRegex != NULL) {  // GOT ERROR HERE
            url += "&pattern=" + urlRegex;
        }

エラーを取得します、実際には「エラー」ではなく「メモ」と呼ばれます

エラーの内容: 注: 'std::string {aka std::basic_string}' は 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>' から派生していません

誰かがそれについて何か考えますか?

ありがとう

4

1 に答える 1

3

2 つのこと: まず、デフォルトurlRegexNULL. これは空の文字列であるということですか?もしそうなら、とにかくそれが文字列のデフォルトであるため、気にしないでください。次に、urlRegexNULL であることを確認するときは、代わりに次のようにします。

if(!urlRegex.empty()) { // ...

webServerPort次に、 (int) を std::stringに追加しようとしています。それは合法ではありません。あなたが本当にこれをやりたいのなら、それを行う方法は次のようになります:

std::ostringstream ss;
ss << "http://0.0.0.0:" << webServerPort << "fake_settings/?file=" << responseFile;
std::string url = ss.str();
于 2013-01-09T18:30:40.203 に答える