>C/C++vectorに詰め込んだオブジェクト解放するための便利関数2012/09/09久しぶりにテンプレート関数を使おうとしたときのいくつかの間違いを覚書として書いておきます。Utilityクラスなるものを用意し、次のような静的メソッドを宣言、定義しました。scopeといったエラーがでます。scopeはstd::vectorという部分がTに依存するため、型なのか変数名なのか、何なのか分からない、ということ言っています。(VC++の場合は、問題なくコンパイルが通るらしいです。‘std::vector::iterator’型だと分かるように「typename」をつけてください、と言っています。この時点でこのコンパイラ自身は型だとわかっているようですが、どんなコンパイラでも通るように厳しく戒めてくれている、という理解です。>&)'と怒られてしまいました。これは実際にHoge.cppでUtility::releaserを使用している個所でその実体が何か分からない、ということを言っています。Utility.cppにおいて、クラスHogeを考慮したテンプレート関数の実体化を行っていない、かつ、Hoge.cppでも実体化を行っていないためです。そこで、Hoge.cppで実体化が行われるように、Utility.h、つまりヘッダにテンプレートの実装を書きます。}};これで、テンプレート関数が使えます。明示的実装というものがあり、分けることもできるそうです。テンプレートの使用パターンを宣言しておくというやり方です。exportという記述子があり、定義と実装を分け、予めのパターン列挙も必要ないそうです。こちらは対応コンパイラが少ないそうです。このあたりのお話は、こちらが参考になりました。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。技術setjmp/longjmpによるメモリリークパターンsetjmp/longjmpによるメモリリークパターンを紹介します。次のコードを見てください。技術3要素を一括りにして扱うC++で頻繁に二つの要素を一つをキーにして扱いたい時に、mapを使用していました。それ以上の数の要素を扱う場合は、mapの要素にクラスを入れて対応していました。技術MonoDevelopコード生成ウィンドウからコード生成UnityのC#スクリプトを書くために、Unityに付属していたMonoDevelopを使用しています。継承元のメソッドをオーバライドする際に、雛形を自動生成する方法を探していました。技術vectorの気遣いvectorで(ポインタではなく)オブジェクト自体を取り扱う場合、push_backしたときに次のことが行われています。ゲーム制作でお世話になったCB-SXF6さんがアニメ、ゲーム制作者向けに情報発信されています。メインプログラマとして参画させていただいたトランプゲーム「大貧民++」の公式サイトです。CB-SXF6さんが運営されています。