class A
{
public:

    A(int ) // not giving the int parameter a name because we don't use it
    {
    }
};

class B
{
public:

    explicit B(int )
    {
    }
};

void func_a(A )
{
}

void func_b(B )
{
}

int main()
{
    func_a(A(100)); // works
    func_a(200); // works!
    func_b(B(100)); // works
    func_b(200); // doesn't work!
}
