テンプレートのtypedef - あなたのワークアラウンドは?
2023-12-01 06:42:05
質問
C++ 0x にはテンプレートエイリアス(テンプレート型定義と呼ばれることもあります)があります。以下を参照してください。 を参照してください。 . 現在の C++ の仕様にはありません。
ワークアラウンドとして何を使うのが好きですか?コンテナオブジェクトかマクロか? その価値はありますか?
どのように解決するのですか?
<ブロッククオート回避策として何を使用したいですか?コンテナオブジェクトかマクロか?また、その価値はありますか?
正規の方法は、このようなメタファンクションを使うことです。
template <typename T>
struct my_string_map {
typedef std::map<std::string, T> type;
};
// Invoke:
my_string_map<int>::type my_str_int_map;
これはSTLでも使われている(
allocator::rebind<U>
) や Boost を含む多くのライブラリで使われています。で多用されています。
バイオインフォマティカルライブラリ
.
肥大化していますが、99%の確率で最良の選択肢です。ここでマクロを使うことは、多くのデメリットに見合うものではありません。
(編集: Danielのコメントで指摘されたように、Boost/STLの規約を反映させるためにコードを修正しました)
関連
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] C++とCの融合 - #ifdef __cplusplus はどのように機能するのか?
-
[解決済み] template "と "typename "キーワードはどこに、なぜ入れなければならないのですか?
-
[解決済み] 8192個の要素にループをかけると、プログラムが遅くなるのはなぜですか?
-
[解決済み] C++テンプレート関数定義の.CPPファイルへの格納
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
-
[解決済み】カスタムイテレータとconst_iteratorを正しく実装する方法は?
-
[解決済み] C++の内部型定義 - 良いスタイルか悪いスタイルか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】システムが指定されたファイルを見つけられませんでした。