我有:
std::map<double, Foo> map;
for (auto&& [first, second] : map) { /* ... */ }
在哪里Foo
声明的类在别处
我认为有两个问题:
1. 映射类型常量
second
这Foo&
是正确的,但您也可以使用 std::as_const 来实现const Foo&
for (auto&& [first, second] : std::as_const(map)) { /* ... */ }
所以这不是问题。
2.按值拷贝内置类型
first
这const double&
对于内置类型来说是低效的。
有没有办法让first
价值被接受?
我敢肯定这没有被忽视。