#include <iostream>

struct test
{
  test(int x)
    : a(get_b()),
      b(x)
  { }

  int get_a() { return a; }
  int get_b() { return b; }

  int a;
  int b;
};

int main()
{
  constexpr int expected = 3;

  test t = expected;

  if(t.get_a() != expected) {
    std::cout << "Expected " << expected << ", but got " << t.get_a() << std::endl;
  }
}
