std::tuple使用QDateTime类型报错
时间: 2024-02-03 21:01:49 浏览: 83
藏经阁-std__tuple与模板元编程.pdf
当使用 `std::tuple` 存储 `QDateTime` 类型时,需要确保 `QDateTime` 类型是可复制的。因为 `std::tuple` 中的元素需要支持拷贝构造函数和赋值运算符。
如果你在使用 `std::tuple` 存储 `QDateTime` 类型时遇到了问题,可以尝试使用 `std::shared_ptr<QDateTime>` 来代替 `QDateTime`。这样可以确保 `QDateTime` 对象在 `std::tuple` 中被复制时,只复制指针,而不是整个对象。示例代码如下:
```cpp
#include <tuple>
#include <memory>
#include <QDateTime>
int main()
{
std::tuple<std::shared_ptr<QDateTime>> my_tuple;
auto my_date_time = std::make_shared<QDateTime>(QDateTime::currentDateTime());
std::get<0>(my_tuple) = my_date_time;
return 0;
}
```
这样,就可以在 `std::tuple` 中存储 `QDateTime` 类型了。
阅读全文