#include <iostream>

class age {
public:
    age(int age)
        : age_ { age }
    {
    }

    auto getAge() { return age_; }

private:
    int age_;
};

auto main() -> int
{
    // Explicitly calling the constructor
    age a1 { 20 };

    // Explicitly calling the constructor
    age a2 = age { 20 };

    // Attempts to use an integer
    // where an age is expected.
    // Implicit conversion done.
    // This seems reasonable.
    age a3 = 20;

    (void)a1;
    (void)a2;
    std::cout << a3.getAge() << "\n";
}
