BSON types and std::chrono
BSON types and std::chrono
在尝试使用MongoDB C++官方教程时,我遇到了一个我无法理解的错误。以下代码是从他们的网站上提取的:
#include <chrono>
#include <bsoncxx/builder/stream/document.hpp>
#include <bsoncxx/types.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>
using bsoncxx::builder::stream::document;
using bsoncxx::builder::stream::open_document;
using bsoncxx::builder::stream::close_document;
using bsoncxx::builder::stream::open_array;
using bsoncxx::builder::stream::close_array;
using bsoncxx::builder::stream::finalize;
int main()
{
//...
bsoncxx::document::value restaurant_doc = document{}
<< "address" << open_document << "street"
//...
<< bsoncxx::types::b_date{std::chrono::milliseconds{12323}}
//...
<< "restaurant_id" << "41704620"
<< finalize;
我从GCC(v6.1.1)中得到的错误如下:
insert.cpp: In function ‘int main()’:
insert.cpp:36:65: error: no matching function for call to ‘bsoncxx::v_noabi::types::b_date::b_date(<brace-enclosed initializer list>)’
<< bsoncxx::types::b_date{std::chrono::milliseconds{12323}}
In file included from /usr/include/bsoncxx/v_noabi/bsoncxx/builder/core.hpp:26:0,
from /usr/include/bsoncxx/v_noabi/bsoncxx/builder/stream/document.hpp:17,
from insert.cpp:3:
/usr/include/bsoncxx/v_noabi/bsoncxx/types.hpp:306:14: note: candidate: bsoncxx::v_noabi::types::b_date::b_date(const time_point&)
explicit b_date(const std::chrono::system_clock::time_point& tp)
^~~~~~
我试着用parens而不是大括号初始化chrono::milliseconds
,但GCC只是更清楚地抱怨了可用的bsoncxx::types::b_date
构造函数和我提供的内容之间的类型不匹配。根据MongoDB C++11 Driver文档,我还试着给它提供一个用相同数字初始化的chrono::system_clock::time_point
,但我仍然不匹配。
所以。。。我不知道为什么教程材料不适合我,也不完全理解C++的类型、模板或大括号初始值设定项列表。虽然我很乐意阅读一本针对我所面临问题的教程,但我甚至不知道谷歌有什么用。知识差距太大=P
因此,任何帮助都将不胜感激
类似的东西
bsoncxx::types::b_date { std::chrono::system_clock::time_point {
std::chrono::milliseconds { 12323 } } }
或
bsoncxx::types::b_date { std::chrono::system_clock::now() +
std::chrono::milliseconds { 12323 } }
希望能起作用。(第一个是相对于系统时钟的epoch,在Linux系统上可能是1970年1月1日00:00:00 UTC的Unix epoch。)
相关文章:
- 从持续时间构造std::chrono::system_clock::time_point
- 如何在c++迭代器类型中包装std::chrono
- 使用 memcpy() 复制到 std::chrono::milliseconds 会给出错误 -Werror=clas
- std::multimap<std::chrono::milliseconds, T>::rbegin 在 MSVS-13 中指向 end()?
- std::adjacent_difference with std::chrono time_point
- VSCode 说 std::chrono 是模棱两可的,如果运算符<<重载
- 是否确保 2 个连续的 std::chrono::steady_clock::now() 不相等?
- std::chrono::d uration 可以按秒初始化,但不能按毫秒初始化?
- 比较两个 std::chrono::time_point 实例时出错
- 来自 std::chrono 的编译器警告,但未被使用
- 从编译时已知的日历日期创建"std::chrono::time_point"
- std::chrono::time_point from std::string
- 使用 std::chrono::steady_clock 对线程/异步中的代码进行基准测试
- 为什么 std::chrono 在测量循环和编译器优化的并行 OpenMP 的执行时间时不起作用?
- 如何在不使用 std::tm 和 mktime() 的情况下为给定日历日期创建 chrono::time_point 对
- 从"LLONG_MAX 秒"构造 std::chrono::毫秒变量时发生了什么?
- What is the std::chrono::time_point equivalent of std::numer
- python equivalent of std::chrono::steady_clock::now();
- std::chrono::duration::count函数的实际结果类型是什么
- 如何正确地将 boost::optional<std::chrono::d uration> 作为函数参数?