It's not an array, it's a view. A pointer and a size or two pointers. Assuming your use case is list initialization of a function argument, reference is just unnecessary overhead. Granted, a compiler that can do list unit, will optimize that reference out. It just looks unusual.