你能帮我解决这个错误吗
二进制表达式的无效操作数('ostream'(又名'basic_ostream')和'const std::chrono::year_month_day')
我用以下命令编译源代码 CLion 2023.3.2 C++20 苹果硅M1 铿锵++版本 Apple clang 版本 15.0.0 (clang-1500.1.0.2.5) 目标:arm64-apple-darwin23.2.0 线程模型:posix
源代码
科隆纳.h
#ifndef SUPERE_COLONNA_H
#define SUPERE_COLONNA_H
#include <chrono>
namespace colonna {
class Colonna {
public:
Colonna(const std::chrono::year_month_day &dataC);
const std::chrono::year_month_day &getData() const;
void setData(const std::chrono::year_month_day &dataC);
private:
// Data
std::chrono::year_month_day dataC;
};
} // colonna
#endif //SUPERE_COLONNA_H
科隆纳.cpp
#include "Colonna.h"
namespace colonna {
Colonna::Colonna(const std::chrono::year_month_day &dataC) : dataC(dataC) {}
const std::chrono::year_month_day &Colonna::getData() const {
return dataC;
}
void Colonna::setData(const std::chrono::year_month_day &dataC) {
Colonna::dataC = dataC;
}
} // colonna
主.cpp
#include <chrono>
#include <iostream>
#include "Colonna.h"
using namespace colonna;
using namespace std;
using namespace std::chrono;
int main() {
Colonna colonna ({month(1)/day(12)/year(2024)});
std::cout << colonna.getData() << '\n';
}
谢谢大家
我使用 IDE 和以下命令运行了测试
clang++ --std=c++20 main.cpp clang++ --std=gnu++20 main.cpp
clang-1500.1.0.2.5
映射到 LLVM 版本 16.0.0。
std::chrono::operator<<(std::chrono::year_month_day)
直到 LLVM 17 才被添加到 clang 的 libc++ 中,如在此 demo 中所示。