いくつかの新しいライブラリと、CおよびC++を探しています。過去のほとんどの時間で、私は「偶然に」いくつかに偶然出会いました-そして、それらのほとんどは、私が取り組んでいるプロジェクトでうまく利用されていました。
ライブラリは、Mac OS XとLinux/POSIX、および場合によってはWindowsで実行する必要があります。
これはコミュニティWikiとしてマークする必要があります。追加する何か面白いものがあれば更新してください!
ありがとう!
BoostやSTLのような「生産性」ライブラリを探していません。その代わりに、グラフィックライブラリ、スクリプトライブラリ、ネットワーク、さらにはMOD/MIDI再生ライブラリなど、ランダムなジャンルの「興味深い新しいもの」を探しています。申し訳ありませんが、以前はそのことを明確にしていませんでした。
STLとBoostは必須です。
SQLite は、プロジェクトに直接含めることができる、完全に埋め込まれたフル機能のリレーショナルデータベースを数100kで提供します。存在感が高いため、市場性の高いスキルでもあります(Mozilla FirefoxおよびAndroidおよびiOS)に含まれています)。
ユーザーインターフェイスの作成に興味がある場合は、 ncurses を調べてください。これは、多くの端末ユーザーインターフェイスの作成に使用されたライブラリであり、ゲームやシェルユーティリティの作成に非常に役立ちます。 Qt は、C++に適したGUIフレームワークです。
グラフィックスやゲームの作成に興味がある場合は、SDLまたはOpenGL(Windowsだけで作業しても構わない場合はDirectX)を検討してください。
もちろん、数千の興味深いライブラリがあります。それは本当にあなたが何に興味があるかに依存します。
画像処理などに興味がある場合は、 OpenCV を試してみるのも面白いかもしれません。
すべてのC++プログラマーは、最初にこれら2つのライブラリーをいじる必要があります。
GUIの場合
[〜#〜] ogre [〜#〜] を試して3Dグラフィックを覗いてみませんか?
Visualization Library は興味深いかもしれません。 このギャラリーをチェックしてください
Visualization Libraryは、業界標準のOpenGL 1.x-4.xに基づく高性能2Dおよび3Dグラフィックアプリケーション用のC++ミドルウェアであり、Windows、Linux、およびMac OS Xオペレーティングシステム用のポータブルアプリケーションを開発するために設計されています。
Bullet Physics Library は、3D衝突検出、ソフトボディダイナミクス、およびリジッドボディダイナミクスを特徴とするオープンソースの物理エンジンです。ゲームや映画の視覚効果で使用されます。
機械学習 (分類子とその類のもの)、 ベイジアンネットワーク で遊んだり、独自のアルゴリズムを作成したが、いくつかのツールを使用したい場合これを行うのに便利です(たとえば、既製の最適化ツールと線形代数ツール)。次に dlib を確認してください。私はそれは素晴らしいと思いますが、私はそれに取り組んでいるので、偏っています:)
Boostですが、生産的な部分ではありません:)
Boost.Xpressiveまたはテンプレートで正規表現をエンコードする方法!
Boost.MPLはテンプレートの使用に新たな光を当て、テンプレートメタプログラミングのより細かい概要を理解し、SFINAEとテンプレートの控除の微妙なところまで掘り下げます。
Boost.Preprocessorは、プリプロセッサーの使用と乱用に新たな光を当てます。テンプレートを使用して、テンプレート関数とクラスの複数のオーバーロードを生成するときに非常に便利です(実際、MPLはそれに基づいています)。興味はやや減少しますが...
C++ 0x!
スレッドを備えた新しい標準ライブラリ!
std::future
とstd::function
の使い方を学び、ラムダの喜び、範囲ベースのfor
構文、auto
キーワードを発見してください!
C++ 0xには非常に多くの新しいおもちゃがあり、ほとんど新しい言語のように感じられます。また、古いスキルを磨き、inを維持するための良い方法でもあります。
私はcimgをいじるのを楽しんでいます、それは非常に良い、使いやすい画像ライブラリで、:pをいじるのに適しています
sQLiteへの休止状態のようなインターフェイスです。誰かが [〜#〜] otl [〜#〜] !
JITで動的に新しいコードをC++に
Cinder と openFrameworks は、「クリエイティブコーディング」のための素晴らしいツールキットです。これらのライブラリ、またはライブラリのコレクションは、数学やネットワーキングから2D、3Dグラフィックスまで、さまざまな入力デバイスとのインターフェースなど、すべてをカバーしています。
ゲーム開発用- [〜#〜] ogre [〜#〜]
GUI開発用- wxWidgets- CrossPlatform GUI Library
そして、どちらのライブラリもオープンソースです。
日常業務に統合できるライブラリを探しているのは確かですが、ホームプロジェクトの場合、C++ Wiimoteライブラリがいくつかの興味深いプロジェクトにつながる可能性があります。
鬼はすでに言及されました。 3Dに移行する場合は、 Panda3D を学ぶのが簡単だと思います。
プレイヤー/ステージプロジェクト は、ロボット制御インターフェースおよびシミュレーションライブラリです。ロボットをシミュレートしたり、実際のロボットで実行したりできます。
最後にc ++に関連するものを掘り下げて楽しんだのは [〜#〜] swig [〜#〜] でした。 C++コードをPythonにリンクできるラッパー/インターフェースジェネレーターです。
SWIGを使用するのがいかに簡単であるかを理解することは、それ自体が啓蒙的で非常に楽しいものです。次に、PythonとC++ライブラリを混合して遊ぶことができます。
楽しんで!