次のコードを検討してください。
#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 のコンストラクターの両方の引数に対して機能させることは可能ですか? たとえば3x5
、リテラルPoint(3,5)
または場合3.5x
によっては、演算子本体で数学を実行して、フロートの小数部分から全体の部分を分離します..?