Let's say the semantics I would like to have is

```
class Foo {
public:
    Foo(A &x);
    Foo(A &x, A &y);
    void method();
private:
    A &x, &y;
};
Foo::Foo(A &x) : x(x) {}
Foo::Foo(A &x, A &y) : x(x), y(y) {}
void Foo::method() {
    if (first_constructor_used) {

    } else {

    }
}

```

Now obviously I can't check the member variables `x` and `y` for being NULL. Adding something like a check `int` variable to see which constructor was run seems clunky and not extendable. Does anyone have any suggestions for the semantics which should be used here?