0

shared_ptrboost/tr1との独立した実装を探してい weak_ptrますenable_shared_from_this

私は欲しい:

  • これらの機能の独立した非常に小さな実装を後押しします。
  • MSVC6 や gcc-3.3 などではなく、GCC-4.x、MSVC-2008、Intel などの最新のコンパイラのみのサポートが必要です。
  • Boost/Mit/3-clause BSD のような非コピーレフト LGPL 互換ライセンスの下でライセンスされる必要があります。

だから私はそれを私のライブラリに含めることができます。

注-ブーストからshared_ptrを抽出するのは非常に困難です。少なくともBCPは約324ファイルを提供します...

4

3 に答える 3

3

Boostからshared_ptrを抽出して個別に使用しましたが、ファイル数は間違いなく300未満でした。それは3年前のことですが、状況が変わった可能性があります(最近、configフォルダーにファイルが増えている可能性がありますか?)。shared_ptrに必要なものは次のとおりです。

  • assert.hpp
  • checked_delete.hpp
  • throw_exception.hpp
  • config.hppおよびconfigディレクトリ
  • detail / bad_weak_ptr.hpp
  • detail / interlocked.hpp
  • detail / shared_count.hpp
  • detail / sp_counted_base.hpp
  • detail / sp_counted_base_w32.hpp
  • detail / sp_counted_impl.hpp
  • detail / workaround.hpp
  • そして最後に、shared_ptr.hpp自体。

weak_ptrとenable_shared_from_thisがそれに多くのファイルを追加するとは思わない。

于 2010-05-01T08:58:15.733 に答える
1

GCCの最近のバージョンには、TR1の実装が含まれています。

#include <tr1/memory>

std::tr1これにより、名前空間で言及した3つすべてが得られます。

于 2010-05-01T08:53:06.307 に答える
1

BCPはコンポーネントレベルで機能するため、コンポーネント間の依存関係があると、ファイル数が急増します。

コンパイラが教えてくれた、見つからないファイルを1つずつ含めようとします。製品がビルドされると、必要なファイルが必要になります。

これにより、時間の一部を犠牲にして、ファイルの数を大幅に減らすことができます。

BCPがこれを実行できれば、明らかに必須です。コンポーネントレベルではなくファイルレベルで動作し、条件付きコンパイルを処理できました。

于 2010-05-01T08:59:19.523 に答える