That constructor is a convenience function because most of the time the type is int. If C++ had forwarding constructors I'd have written it to simply forward to the other one.