auto s = string(`foo`); Error: function expected before (), not string of type string It should be accepted because all built-in types has a ctor. For example auto a = int(10); works
string is not a builtin type, it's an alias to an array, so the rule for uniform constructor call doesn't apply.