問題タブ [sunstudio]
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++ - 「最後のステートメントは値を返す必要があります」という警告を黙らせる方法は?
Sun Studio 12.1 が警告を出力します。
そのような機能のために頻繁に:
関数の最後に戻り値が必要ないことは明らかです。次のようなものを挿入するのをためらっています
とにかくデッドコードであるため、そのような関数の最後に。より複雑な戻り値の型の場合、「適切な」偽の値を構築するのは実際には難しい場合があります。
そのような警告を黙らせるための推奨される方法は何ですか?
c++ - 警告: 非 const 参照を一時的に初期化しないでください
Sun Studio 12.1 のタイトルから、次のスニペットで警告が表示されます。
警告テキストは次のとおりです。
const 以外の参照を一時的に初期化するのは悪いことだとわかっていますが、ここでそれがどのように行われるのかわかりません。それ自体が一時的なベクトルの最初の要素への参照を返すことは知ってい[0]
ますが、問題が何であるかはわかりません。
誰か説明してくれませんか
- コンパイラに文句を言うのはなぜですか?
- それは正当な警告ですか?
- はいの場合、何を変更する必要がありますか?
- いいえの場合、どうすればエレガントに沈黙させることができますか?
sunstudio - gcc の __sync_fetch_and_add に相当する Sun コンパイラの機能は? 別名Oracle Studio 12.2
Linux 64 ビット用の Oracle (Sun) Studio 12.2 C/C++/Fortran コンパイラには、gcc で提供されている __sync_fetch_and_add 関数と同等のものがありますか? Intel アトミックのラッパー コードが Sun のドキュメントにも、Sun Studio インストールの .h ファイルにも見つからないようです。つまり、私が検索するのが下手なだけか、それとも存在しない可能性があるかのどちらかがわからないということです。
Test-and-set、Compare-and-swap、Fetch-and-foo などの Sun C/C++ コンパイラを使用して、インテル i7 で利用可能なアトミック ハードウェア関数にアクセスする必要があります。
これは、私がアセンブリ プログラマーではなく、これが GCC コンパイラではなく Sun コンパイラであるため、gcc のオープン ソース実装から asm コードをコピーしても必ずしもうまくいくとは限らず、最終的には 64 ビット コンパイラであり、そのため、簡単に見つかる 32 ビットの例が 64 ビット システムで正しく動作するとは限りません。
背景: 目的は、これらの特定のハードウェア アトミックを必要とするマルチコア用のいくつかの並行プログラムを実装することです。
読んでくれてありがとう。
c++ - VC++ および Sun Studio でのフィールドの初期化順序、符号付き比較、および未使用の変数に関する警告
次の C++ コンパイルの問題と対応するコンパイラの警告を有効にしたいと考えています。
未使用の変数 -- Sun Studio CC
例:
void m() { int i = 10; }
符号付きと符号なしの比較 - VC++とSun Studio CC
例:
if ((unsigned) 10 < -1);
フィールドの初期化順序が正しくない - VC++およびSun Studio CC
例:
class A { int i, j; A() : j(0), i(0) {} };
これらはすべて GCC によってキャッチされ、VC++ と Sun Studio でこれらを有効にしたいと考えています。
編集: VC ++で符号付きと符号なしの比較警告を有効にする以外では、他のすべてのオプションは可能ではないようです。
linker - Sun Solaris Studios 12.2 のリンカー (ld) はどこにありますか?
現在、リンクの目的で、SPARC マシンの次のディレクトリにプリインストールされているリンカーを使用しています。
アプリケーションを Sun Studios Compiler 12.2 でコンパイルしたいので、このパッケージに付属しているリンカーも使用したいと考えています。ただし、Sun Studios の bin ディレクトリを確認すると、ac コンパイラ (cc) だけが見つかりますが、ld (リンカー) は見つかりません。これがどこに行ったのか、どうすればそれを呼び出すことができるのか誰にも分かりませんか?
どうもありがとう、マイク
solaris - Sun Studio 11 for Solaris8。Oracleサイトにはありません(デッドリンク)
Sun Studio 11は、Solaris 8でサポートされている最後のものであるため、特に必要です。OracleサイトにはSunStudio11がありません。バグのようで、ぐるぐる回っています。つまり、Oracleサイトには「Sunリンクが無効です。Oracleサイトにアクセスしてください」と表示され、Oracleサイトは同じ古いSunサイトにリンクしています。
http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-138519.html
そしてもちろん、ボトルネックはSolaris 8であるため、SunStudio12がインストールされて動作する場合。私は喜んで以上です。
c++ - SolarisCCを使用したstd::BinaryPredicateの問題
SunStudioコンパイラを使用しているSolarisで問題が発生しました。libCstdに関連しているようです。
次のコードを検討してください。
私が受け取るエラーメッセージは次のとおりです。
しかし、値の代わりに参照を使用すると、正常にコンパイルされます。
コンパイルは、g++を使用する両方で問題ありません。誰かが何が起こっているのか知っていますか?ありがとう !
c++ - テンプレートクラスのテンプレートフレンドがSunStudioC++で失敗する
SunStudioでテンプレートクラスにテンプレートフレンドを与えることに問題があります。コードはGNUG++(4.4.1および4.4.3)で正常にコンパイルされますが、Sun Studio C ++(5.9 SunOS_sparc Patch 124863-01 2007/07/25)では失敗します。
最小限の例を次に示します。
を介してコンパイルしようとするとCC -c -o t3.o t3.cpp
、次のエラーメッセージが表示されます。
これはSunStudioC ++の問題ですか、それとも無効なC ++(GCCで引き続き受け入れられ、警告を表示しません-Wall -pedantic
)ですか?標準に準拠し、GCCとSun Studioの両方でコンパイルされるようにコードを変更するエレガントな方法はありますか?
よろしくお願いします!
c++ - 共有ライブラリ (Solaris、Sun Studio) にグローバル関数ポインタを設定する
Fortran 95 ライブラリを中心に小さな C++ ラッパー共有ライブラリを作成しています。Fortran シンボルにはシンボル名が含まれているため、Fortran 関数を C++ 関数ポインターにロードする.
ために使用する必要があります。dlsym
現在、ヘッダー ファイルに一連のグローバル関数ポインターがあります。
そして、それらを対応する C++ ファイルに入力します。
質問:
- このようにすると、これらのポインターはいつ入力されますか?
- このライブラリをロードする実行可能ファイルにそれらがロードされていると想定できますか?
- 特に、実行可能ライブラリまたは他のライブラリで静的に作成されたオブジェクトでこれらの関数を使用できますか? それとも、これは静的初期化順序の大失敗に悩まされていますか?
- 上記の方法が正しくない場合、実行可能ファイルやその他のライブラリの静的オブジェクトで使用できるように、これらのポインターを設定する最もエレガントな方法は何ですか?
私は Solaris で Sun Studio コンパイラを使用していますが、それが違いを生むのであれば、Linux での GCC のソリューションにも興味があります。
c++ - SolarisでのBoostの構築
BoostはSolaris上で完全にビルドされますか?
Sun Studio 12.2に最新のパッチを適用するためのサポート契約を支払う前に、誰かがこれ(特にProto / Spirit)で成功したかどうかを知りたいです。いくつかのエラーが発生し、パッチで解決されたように見えるものもありますが、Oracleにサポート料金を支払うのは安くはないので、それが機能する前に機能することを望んでいます。
現在、Solarisでcpp-netlibを使用し、Boostプロパティツリーを使用してHTTP経由でフェッチされたJSONをデコードしようとしています。Mac OS Xでも問題なく動作するので、Solarisでも同じコードを使用できることを期待しています。