1 #include <cmath>
2 #include <assert.h>
3 
4 class A {
5   public:
6     int a;
7     double b;
8 
A()9     A() : A(0, 0) {}
A(int _a)10     explicit A(int _a) : A(_a, 0) {}
A(double _b)11     explicit A(double _b) : A(0, _b) {}
A(int _a,double _b)12     A(int _a, double _b) : a(_a), b(_b) {}
13 };
14 
main()15 int main() {
16   A instance(1, 1.5e0);
17   assert(instance.a == 1);
18   assert(std::abs(instance.b - 1.5) < 1e-8);
19 
20   A instance1(1);
21   assert(instance1.a == 1);
22   assert(std::abs(instance1.b) < 1e-8);
23 
24   A instance2(1.5);
25   assert(instance2.a == 0);
26   assert(std::abs(instance2.b - 1.5) < 1e-8);
27 
28   A instance3;
29   assert(instance3.a == 0);
30   assert(std::abs(instance3.b) < 1e-8);
31   return 0;
32 }
33