namespace VG {
class Point{
public:
constexpr Point(const int x, const int y) : myX{x},myY{y} {}
constexpr int getX() const;
constexpr int getY() const;
private:
const int myX, myY;
};
}
namespace VG {
constexpr int Point::getX() const {
return myX;
}
constexpr int Point::getY() const {
return myY;
}
}
void test()
{
constexpr int i = VG::Point{4, 5}.getX();
static_assert(i==4, "oops");
}
int main() {
test();
return 0;
}
CgpuYW1lc3BhY2UgVkcgewogICAgY2xhc3MgUG9pbnR7CiAgICBwdWJsaWM6CiAgICAgICAgY29uc3RleHByIFBvaW50KGNvbnN0IGludCB4LCBjb25zdCBpbnQgeSkgOiBteVh7eH0sbXlZe3l9IHt9CiAgICAgICAgY29uc3RleHByIGludCBnZXRYKCkgY29uc3Q7CiAgICAgICAgY29uc3RleHByIGludCBnZXRZKCkgY29uc3Q7CiAgICBwcml2YXRlOgogICAgICAgIGNvbnN0IGludCBteVgsIG15WTsKICAgIH07Cn0KCm5hbWVzcGFjZSBWRyB7CgogICAgY29uc3RleHByIGludCBQb2ludDo6Z2V0WCgpIGNvbnN0IHsKICAgICAgICByZXR1cm4gbXlYOwogICAgfQoKICAgIGNvbnN0ZXhwciBpbnQgUG9pbnQ6OmdldFkoKSBjb25zdCB7CiAgICAgICAgcmV0dXJuIG15WTsKICAgIH0KfQoKdm9pZCB0ZXN0KCkKewoJY29uc3RleHByIGludCBpID0gVkc6OlBvaW50ezQsIDV9LmdldFgoKTsKCXN0YXRpY19hc3NlcnQoaT09NCwgIm9vcHMiKTsKfQoKaW50IG1haW4oKSB7Cgl0ZXN0KCk7CglyZXR1cm4gMDsKfQ==