Since it's declared explicit, it *might* be more consistent for the caller to disambiguate:
	MyClass my_class_void_star(static_cast\<const void*>(0));
	MyClass my_class_unsigned(static_cast\<unsigned>(0));
        MyClass my_class_my_type(MyUserType(0));
Why do we need it, if it  is private? Does anything need it besides fromVoid?