请考虑以下代码:
#include <iostream>
class Point
{
public:
int x,y;
Point(int newx, int newy) : x(newx), y(newy) {}
};
Point operator"" x(const unsigned long long i)
{
return Point(i, 0);
}
int main()
{
Point p = 5x;
std::cout << "\npoint is " << p.x << "," << p.y << "\n\n";
return 0;
}
UDL 有效,但是否可以使其对 Point 的构造函数的两个参数都有效?eg3x5
是一个字面量,Point(3,5)
或者甚至是一个字面量3.5x
,然后在操作符主体中做一些数学运算以将整个部分与浮点数的小数部分分开..?