問題タブ [clang++]

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 に答える
179 参照

boost - Boost.Wave 1.52は、Darwinでclang++を使用してビルドされません

コンパイルブーストC++11 clang macを適用しましたが、cstddefが見つからず 、次のようにビルドを呼び出しました ./b2 variant=debug,release --layout=versioned toolset=clang cxxflags="-fPIC -std=c++11 -stdlib=libc++ -arch i386 -arch x86_64" linkflags="-stdlib=libc++ -arch i386 -arch x86_64" threading=multi link=shared --stagedir=stage_darwin_intel_shared_mt stage

そして、警告のログとBoost.Waveが失敗することを除いて、すべてが構築されます:http: //pastebin.com/ZHkmTWaq

PSブーストの静的フレーバーはWaveをうまく構築します。

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

c++ - clang++-テンプレートクラス名をクラススコープのテンプレートとして扱います

clang ++(clang 3.2を試しました)は、テンプレートクラスの名前を、クラススコープ内で発生するテンプレートではなく、インスタンス化されたクラスとして扱うようです。たとえば、次のコード

それをコンパイルするにはどうすればよいですか?

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

c++ - GCD が実行時間を増加させるのはなぜですか?

Grand Central Dispatch (GCD) を学習し、次のコードを使用してテストします。

GCD の場合:

GCD なし:

GCD でのテスト結果:

GCD なしのテスト:

GCD は実行時間を短縮するはずだと思っていましたが、結果は逆です。GCD を誤用しているかどうかはわかりません。OS環境はMac OS X 10.8 with Xcode 4.5です。コンパイラは Clang++ 3.1 です。ハードウェアは2コアのi5 CPUを搭載したMacbook Pro。

比較のために、OpenMP を使用します (同じラップトップで Xcode 4.5 に同梱されている GCC も使用します)。

そして w/wo (-fopenmp)、テストする実行可能ファイルが 2 つあります。

-fopenmpコンパイル中のフラグ付き:

-fopenmpコンパイル中のフラグなし:

OpenMP を使用すると、実行時間が短縮されます。

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

c++ - 置換の失敗は時々エラーですか?

次のコードsnippletは、'std :: is_constructible <A、int>'を実装しようとします。

g ++を使用すると、これは正常に機能します。clang ++を使用すると、次のエラーが出力されます。

バージョン情報:clangバージョン3.3(trunk 172418)(llvm / trunk 172417)、g ++(Debian 4.7.2-4)4.7.2。

私の質問: 私見これはSFINAEでなければなりません。ここで何かが足りないのですか、それともclang ++に問題がありますか?

(is_constructible()があることは知っていますが、それを使用することは許可されていません。それは私の質問のポイントではありません。)

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

c++ - libconfig ++ -stdlib =libc++未定義のシンボル

libconfig++が機能する非常に単純な例を取得しようとしています。ただし、コンパイラオプション「-stdlib =libc++」および「-std=c ++ 11」が原因で、次のリンクエラーが発生しています。

環境

ダーウィンiMac.local12.2.0

Darwinカーネルバージョン12.2.0

xnu-2050.18.24〜1 / RELEASE_X86_64 x86_64

ソース

建てる

clang ++ -o main main.cpp -lconfig ++ -stdlib = libc ++ -std = c ++ 11

エラー

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

c++ - integral_constant およびテンプレート引数の推論

関数に渡されたコンパイル時の定数整数をテンプレート化された型にキャプチャしたいと思います。将来の目標は、-2*i + 3*k のような非常に単純な式 (コンパイル時定数 int と変数の合計) から式を作成する独自の (非常に限定された) 式テンプレートを作成することです。

私は非常にゆっくりと始めています。次のコードがあります。

2*Foo(3) のテンプレート引数推定は失敗します。関数への constexpr パラメータのようなものはないことを読みました。

私が望むものを達成する方法はありますか?

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

c++ - clang:出力からクラス名を削除します

clang++次のコマンドラインコマンド(行に分割)を使用して、を使用してC++プロジェクトをビルドします。

ただし、を実行すると、コマンドラインにあるstrings <filename>にもかかわらず、いくつかのクラス名が表示されます。llvmにすべてのシンボルを削除するように指示する必要があるものを-O4試しましたが、これらは削除されません。-Wl,-s

表示されるクラス名には、共通点が1つあるようです。それは、vtableがあるということです。これらのクラスの1つは次のとおりです。

シンボルとして表示されます:

名前空間とクラス名が最終ファイルに表示されるのは気に入らない。これらを取り除くにはどうすればよいですか?私のバイナリはコマンドラインユーティリティなので、main関数のみをエクスポートする必要があります。


(@nmで提案されているように)提供した後でも-fno-rtti、次のようないくつかの名前が残っています。

(MyClassInstanceは上記のMyClassのサブクラスです)

さらに、グローバル変数の名前もバイナリに含まれています。

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

c++ - 値渡し中の暗黙的な変換は機能しますが、参照渡しは機能しません

clang++ 4.1 でのコンパイル:

プリント、

一方、次のように定義するfと、

コンパイルエラーが発生し、

なんで?f参照を作成すると問題が発生する理由がわかりません。

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

clang++ - QtCreator の下の clang++ は c++11 では動作しません

OS:OS X 10.8.1 QtCreator:2.6.2

コマンド ラインは問題ありませんが、QtCreator はコードのコンパイルに失敗します。

コマンドライン :

QtCreatorのコンパイラ設定 http://www.flickr.com/photos/92283971@N04/8453188038/in/photostream

Qt .pro ファイル

エラーメッセージ:

clang: エラー: -stdlib=libc++ の無効なデプロイメント ターゲット (OS X 10.7 以降が必要) make: *** [main.o] エラー 1

しかし、私のOS番号は10.8.1です

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

qt - QtCreatorはデバッガヘルパーをビルドできません

Qtフォーラムでこの質問をしましたが、最近はかなり静かなようです。

比較的新しいQtCreator2.6.2(Qt 5.0.1を使用)を実行しています。デバッガヘルパーをビルドしようとすると、次のエラーが発生します。

ツールチェーン「GCC(x86 64ビット)」を使用してヘルパーを構築しています.../Developer/Applications/Qt/5.0.1/clang_64//qtc-debugging-helper/にヘルパー「GDBヘルパー」を構築しています

/Developer/Applications/Qt/5.0.1/clang_64/bin/qmake -spec macx-clang dumper.pro -nocache CONFIG + =x86_64..を実行しています。

/ usr / bin / makeall-kを実行しています.../Developer / Applications / Qt / 5.0.1 / clang_64 //qtc-debugging-helper/で'/usr / bin / make all -k'を実行中にエラーが発生しました:プロセス返された出口コード2:clang ++ -c -pipe -mmacosx-version-min = 10.6 -O2 -Wall -W -fPIC -DUSE_QT_CORE = 1 -DUSE_QT_GUI = 1 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I .. / mkspecs -clang-I。-I ../ include -I ../ include / QtWidgets -I ../ lib / QtWidgets.framework / Versions / 5 / Headers -I ../ include / QtGui -I ../ lib / QtGui.framework / Versions / 5 / Headers -I ../ include / QtCore -I ../ lib / QtCore.framework / Versions / 5 /Headers-I。-I / System / Library / Frameworks / OpenGL.framework / Versions / A / Headers -I / System / Library / Frameworks / AGL.framework / Headers -o dumper.o dumper.cpp make:clang ++:そのようなファイルまたはディレクトリはありませんmake :* [dumper.o]エラー1の作成:エラーのため、ターゲットの「すべて」が再作成されませんでした。ビルドに失敗しました。

それで、私が明らかに持っていない「clang++」と呼ばれるファイルを探していることがわかります。誰かがこれの回避策を私に説明できますか?Qt用にビルド済みのインストールパッケージを使用することに慣れています。

ありがとう。