在 C++20 中-如何使用户定义的类型兼容std::format
?
例如,假设我有一个名为Point
:
struct Point {
int x;
int y;
};
其operator<<
定义:
inline std::ostream&
operator<<(std::ostream& o, Point pt)
{ return o << "[" << pt.x << << ", " << pt.y << "]"; }
那么下面的程序会输出Hello [3, 4]!
吗?
int main() {
Point pt{3,4};
std::cout << std::format("Hello {}!\n", pt);
}
如果是 - 为什么以及如何?
如果不是 - 我必须在 to 的定义中添加什么才能Point
使其工作?