Imagine a function from a library that takes an array as argument, in their own code, the users may use various array implementations, some will use std::vectors, some will use std::array, some will use basic arrays, some may even create their own classes, we can't satify every user. But every type of array works with a pointer and a size (stored somewhere or not, but known), could using a pointer and a size (if needed) as arguments solve this problem ?