众所周知,由于编译器兼容性问题,移动语义等原因,将STL容器暴露在边界上是一个非常糟糕的想法...因此类似数组的数据通过指针传递(开始和大小,或者开始)和结束)或与自定义对象。
逻辑上,似乎在边界上暴露std:initializer_list<> const&
的构造函数也是一个坏主意。它是否正确?另外,有没有办法确保std:initializer_list
提供的类似体验,但是以安全的方式?例如,拥有自定义Vector
对象,该对象封装std::vector<int>
但可以使用来自其他客户端程序集的Vector({1,2,3,4,5})
构建。