問題タブ [gcc5]

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 投票する
1 に答える
60 参照

c++ - std::string クラスの継承と面倒な C++ オーバーロードの解決 #2

前の質問: std::string クラスの継承と面倒な C++ オーバーロードの解決

operator+前の質問の後の手順で、生の文字列ポインターをテストしようとしました: "aaa" + path_string{ "bbb" }. path_stringそして、それぞれのクラスのフレンド関数を呼び出していないことがわかりました。

テンプレートのオーバーロードを追加しようとしましたoperator+ (2)が、うまくいきませんでした。しかし、テンプレート化されたものが機能することがわかりました(3)

3 つのコンパイラの出力: gcc 5.4、clang 3.8.0、msvc 2015 (19.00.23506)

-333/bbb-

https://rextester.com/BOFUS59590

私が思い出したように、C++標準は、テンプレート化された関数は、テンプレート化されていない関数が引数と正確に一致しない場合にのみ検索する必要があるため、これを明確にしています。しかし、(2)演算子は正確に一致する必要がありますが、なぜ呼び出されないのでしょうか?

remove(3)の場合、 which is(1)の代わりに が呼び出され、(2)よりもよく一致します(1)

ここで何が起こっているのですか?

PS : これは、前の質問のconst+のような問題と同じだと思います。single reference

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

mpi - gcc-5 を使用した libfftw3_mpi.a の未定義参照

私はfftwライブラリが初めてです。最近、シンプルな mpi-fftw コードをhereからダウンロードしました。Ubuntu 18.04 でコードを次のようにコンパイルすると、libfftw3_mpi.a から mpi 関数への未定義の参照がいくつかあります。

gcc-5コンパイルには古いものを使用しています。

gcc-8 を搭載した Mac で同じことを実行しようとしましたが、問題はありませんでした。そのため、Ubuntuで新しいバージョンのgccを使用して同じことを実行しましたが、それでも同じ問題が発生しました。

コンパイルすると、出力は次のようになります