C++ ne peut pas passer des objets de la non-type de POD
C'est mon code:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <curl/curl.h>
using namespace std;
int main ()
{
ifstream llfile;
llfile.open("C:/log.txt");
if(!llfile.is_open()){
exit(EXIT_FAILURE);
}
string word;
llfile >> word;
llfile.close();
string url = "http://example/auth.php?ll=" + word;
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
C'est mon erreur lors de la compilation:
principal.rpc|29|avertissement: impossible de passer des objets de la non-type de POD
'struct std::string'
par'...'
; appel d'abandonner au moment de l'exécution
+1 pour un SSCCE, -1 pour pas réellement poser une question. Euh, +0, je suppose...
OriginalL'auteur ash-breeze | 2012-05-03
Vous devez vous connecter pour publier un commentaire.
Le problème est que la variable d'argument fonctions ne fonctionnent pas sur la non-POD types, y compris
std::string
. C'est un limiation du système et ne peuvent pas être modifiés. Ce que vous pouvez, en revanche, est de changer votre code pour passer d'un type POD (en particulier un pointeur vers un nul résilié tableau de caractères):OriginalL'auteur David Rodríguez - dribeas
Que le message d'avertissement indique,
std::string
n'est pas un POD-type, et la GOUSSE d'-types sont requis lors de l'appel de variadic-argument des fonctions (c'est à dire, des fonctions avec un...
argument).Cependant,
char const*
ici est approprié; changerà
OriginalL'auteur ildjarn