問題タブ [c++98]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - SFINAE を使用してメンバー関数を検出する
C++11 では、クラスにメンバー関数があるかどうかを確認するsize
ために、次のテスト ヘルパーを定義できます。
などのコンパイラ拡張機能に依存せずに C++98 でこれを行うための同様のトリックはありtypeof
ますか?
c++ - std::map を構築するstd::vector から>
std::map<std::string, Foo>
からを構築するにはどうすればよいstd::vector<std::pair<std::string, Foo> >
ですか? std::map は入力イテレータから構築できるようです。
アップデート
ちなみに、ベクター内の文字列をマップに追加するときは、小文字の形式に変換する必要があります。これは、マップを使用して、ベクター内のソートされたバージョンを取得したいためです。
c++ - std::vector を並べ替えて反復する> オブジェクト
以下に定義されているように、タイプ Foo のデータベースからオブジェクトを読み取っています。このオブジェクトは Foo メンバーのベクトルであり、Foo メンバーは文字列 ID とコンテナー オブジェクトで構成されます。
id に関して並べ替えが行われる、並べ替えられた形式で Foo オブジェクトを反復処理したいと考えています。これを行うには、次の関数を使用して、最初にオブジェクトの並べ替えられたバージョンを作成します。ご覧のとおり、オブジェクトは大文字と小文字を区別しない方法で並べ替えられます。現在行っている方法と比較して、このオブジェクトを反復処理するためのより良い方法はありますか?
c++ - std::string から uint64_t
std::string
を に変換するにはどうすればよいuint64_t
ですか? また、文字列にuint64_t
. たとえば、これらの変換は次をスローする必要があります。
または、それらが純粋な表現ではないことを別の方法で示します。C++98 とブースト (を含むboost::regex
) を使用しています。
c++ - ソートされた順序で std::vector を反復処理します
次のように、API から Foo のベクトルを受け取ります。
次に、という関数を作成しました
コンテナーを反復処理し、各 Foo オブジェクトの std::string 型のキーを取り出します。
foos の Foo オブジェクトをソートされた順序でどのように反復処理しますか。ソートはキーで大文字と小文字を区別しない方法で行われます。さらに、サイズが大きいため、foos のソートされたコピーを作成したくありません。
これが私の試みです。これは機能しますが、もっとうまくできるかどうか疑問に思っています。
c++ - 仮想関数をオーバーライドする純粋仮想関数
次のコードが与えられたとします。
クラスは、仮想メソッドを純粋なB
仮想メソッドでオーバーライドします。これを行う目的は、ケース class で変更することを許可されていない既存のクラスの拡張である可能性がありますが、さらにいくつかのクラスの基本クラスでなければならない抽象クラスをまだ持っています。someMethod
A
B
MISRA-C++ ルール 10-3-3によると: コード アナライザーは次の警告を出します:純粋仮想関数は非純粋仮想関数をオーバーライドします。
しかし、警告に関する詳細はあまり見つかりません。上記のコードの副作用は何ですか? ここで悪い習慣は何ですか?
更新: 標準は MISRA-C++ (C++98) です
c++ - タイプ boost::function の null 実装
私はこのようなものを持っています:
これはnullStylerを定義する正しい方法ですか:
代わりにこの方法でできると思っていましたが、空の関数がスローします:
スタイラー関数を使用するコードは、「Null オブジェクト パターン」を使用する代わりに空をチェックできます。どちらが良いですか?私の Detail 名前空間に奇妙な何も機能がないか、空をチェックしていますか?