gpt4 book ai didi

C++ 不能传递非 POD 类型的对象

转载 作者:IT老高 更新时间:2023-10-28 22:24:13 24 4
gpt4 key购买 nike

这是我的代码:

#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;
}

这是我编译时的错误:

main.cpp|29|warning: cannot pass objects of non-POD type 'struct std::string' through '...'; call will abort at runtime

最佳答案

您遇到的问题是可变参数函数不适用于非 POD 类型,包括 std::string。这是系统的限制,不能修改。另一方面,您可以更改代码以传递 POD 类型(特别是指向以 nul 终止的字符数组的指针):

curl_easy_setopt(curl, CURLOPT_URL, url.c_str());

关于C++ 不能传递非 POD 类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com