問題タブ [stdhash]

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.

0 投票する
2 に答える
849 参照

c++ - std::Hash が異なる文字列に対して等しいのはなぜですか?

std::Hash の結果が異なる文字列に対して等しいのはなぜですか? 私は msvc2010sp1 を使用しましたが、この結果を見て驚きました:

出力:

なぜこれが起こるのか誰にも分かりますか?

ps この例は msvc2013 update1 で正しく動作します

0 投票する
0 に答える
1062 参照

c++ - c++ 11 を使用している場合、clang ++ は std::hash を見つけることができません

FreeBSD 9.2 でいくつかのソフトウェアをコンパイルしようとしていますが、問題が発生しました。私自身は C++ 開発者ではなく、どうやら Google で適切な部分を見つけることができないため、問題を解決できませんでした。

開発者は -std=c++0x を CXXFLAGS に挿入しましたが、これは FreeBSD の g++ のバージョンではサポートされていません。Googleで見つけたアドバイスに基づいて、clang ++を使用してc ++ 11に切り替えましたが、まだこの問題に遭遇しています:

これが std::hash の問題に限定されていると信じる理由はありません..最初に失敗するだけです。一方で、それが唯一の問題かもしれません。

「名前空間を使用する」の代わりに std::* を使用する方が良い理由について多くのアドバイスを見つけました。また、この種の問題が発生しないようにコードを適切に記述する方法について開発者に多くのアドバイスを見つけましたが、対処方法については知りませんでした。これを既存のプロジェクトで使用します。このプロジェクト全体のコードをリファクタリングする立場にはありません。

これをコンパイルできるようにする簡単なものがここにないことを願っています。誰かが私に適切なドキュメントを教えてもらえますか?

0 投票する
2 に答える
1904 参照

c++ - プライベート メンバー クラスの std::hash の特殊化

Outerプライベート メンバー クラス ( ) を持つクラス ( と呼びます) がありInnerます。のインスタンスをOuter::Inner順不同の標準コンテナに格納したいので、特化したいstd::hash<Outer::Inner>

ただし、これを書くとき:

コンパイラは文句を言います:

この回答std::hashに従ってフレンド構造体を作成しようとしましたが、それも機能しませんでした: の前方宣言が失敗しました:Outer::Inner

では、どのように進めればよいでしょうか (私が意図したことがまったく可能である場合)?

0 投票する
1 に答える
454 参照

c++ - std::hash をオーバーライドするGoogle のシティ ハッシュを使用するには

だから、私は脳死の瞬間を過ごしているので、簡単な質問.. std::hash<std::string>Googleのシティハッシュを使用するためにどのように上書き/置換できますか?

私の現在のアプローチは、ラッパーを持ち、そのためstd::stringに特化std::hash<>することです。しかし、実質的に同じインターフェースを実装するstd::string必要があり、これを避けたいので、これは苦痛です。

0 投票する
2 に答える
626 参照

c++ - const 型と非 const 型の部分的な std::hash 特殊化

std::hashクラスの 1 つを部分的に特殊化するコードに問題があります。これは自己完結型の例です。

編集: Piotr に感謝します。修正を含めるようにコードを変更しましたが、エラーは残ります。

(g++ 4.9.0) でコンパイルした場合:

なぜ私が得ているのか理解できません: error: invalid conversion from 'const A*' to 'A*' [-fpermissive]。コードを改善するための提案はありますか? テンプレート本体が同じであることAを考えると、両方のハッシュを特殊化する必要があるのは奇妙に思えます。const A

0 投票する
3 に答える
404 参照

c++ - ポインターからメンバーへの std::hash の特殊化を使用できませんか?

汎用ポインター型に対する std::hash の特殊化は、メンバーへのポインターに使用できると思いますが、それをそのまま使用することはできません。代わりに、コンパイラが「不完全な型」エラーを表示します。これは、ポインターに std::hash の特殊化を使用していないことを意味すると思いますか? 何が起きてる?

エラー:

0 投票する
2 に答える
2310 参照

c++ - std::hash の使用()(std::this_thread::get_id())

私は現在、C++ アプリケーションを Windows と Linux の両方でコンパイルできるようにする作業を行っています。

Linux では gcc 4.8 ではコンパイルされません (このスレッドのコメントに感謝します)。これに対する推奨される修正は、次を使用することでした。

これらが同じ出力を生成するかどうかは誰にもわかりますか?