値が弱いポインターであるマップがあります。これは機能します:私はこれを書くことができますが:
for_each( IFoo::foo_wptr obj, objects | range::map_values ) {
IFoo::foo_ptr myObj = obj.lock();
if( myObj ) myObj->notify();
}
ロックされた共有ポインターに変換される新しい範囲が必要です。このようなもの:
for_each( IFoo::foo_ptr obj, objects | range::map_values | range::locked ) {
if( obj ) obj->notify();
}
ただし、その変換がどのように見えるべきかを理解できませんでした。またはそれが変換である必要がある場合。
誰にもアイデアはありますか?このパターンはかなり一般的であると確信しています。