举个具体的例子,比如std::size这个函数,考虑你有一堆数1,2,3,4,5,你要求size,然后你又不能hard code size = 5,这个时候,传统来说,你得 std::vector<int>(1,2,3,4,5).size() 或者 std::array(1,2,3,4,5).size(),虽然在c++20中,vector有了constexpr的构造函数,但是基本上有很大可能性,这段代码在老一点的编译器里就变成运行时了,而且代码也不美观,如果是模板代码,还需要加concept限制这个class有.size()这个member function。但是,如果你用 std::size({1,2,3,4,5})呢,这个基本就是一个编译时了。另外比如说std::range,比如你想loop {1.2.3.4.5},现在只需要std::range::for_each({1,2,3,4,5},xxxxx)
--
FROM 60.191.0.*