即使包含json.h,也未定义对web :: json :: value :: object的引用

时间:2015-03-03 13:14:47

标签: c++ casablanca

我的代码如下:

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)?

1 个答案:

答案 0 :(得分:4)

  

我不明白为什么它没有看到答案没有std :: string?

显然utility::string_tstd::string的typedef,编译器显示实际类型,而不是typedef名称(尽管在这种情况下真实名称是{{1}但是,编译器有一个特殊的规则来显示更常见的名称std::basic_string<char>)。