我的代码如下:
void handle_get(http_request request)
{
TRACE(L"\nhandle GET\n");
std::vector< std::pair< utility::string_t, json::value > > answer;
for(auto const & p : dictionary)
{
answer.push_back(std::make_pair(p.first, json::value(p.second)));
}
request.reply(status_codes::OK, json::value::object(answer));
};
我得到了
undefined reference to `web::json::value::object(std::vector<std::pair<std::string, web::json::value>, std::allocator<std::pair<std::string, web::json::value> > >, bool)'
我不明白为什么它没有answer
没有std::string
?
std::map< utility::string_t, utility::string_t > dictionary;
我不明白为什么它没有看到object(std::vector< std::pair< utility::string_t, json::value > >)
的定义(我已经包含cpprest/json.h
)?
答案 0 :(得分:4)
我不明白为什么它没有看到答案没有std :: string?
显然utility::string_t
是std::string
的typedef,编译器显示实际类型,而不是typedef名称(尽管在这种情况下真实名称是{{1}但是,编译器有一个特殊的规则来显示更常见的名称std::basic_string<char>
)。