問題タブ [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 に答える
178 参照

c++ - decl-specifier としての「static void」

次のコードは、clang で正常にコンパイルされます。C++ 標準がこれで問題ないかどうか知りたかったのです。

私の意見では、どの宣言も有効ではありません。永続的な C++ 標準検証スイートには、その ようなテスト (#1) があり、clang (v3.4) はそのテストで失敗します。

ただし、#1から静的を削除すると、clangは予想どおりエラーを報告します。

標準を調べたところ、静的データ メンバーに関する 1 つの段落 (9.4.2-2) が見つかりました。

2 クラス定義内の静的データ メンバーの宣言は定義ではなく、cv 修飾された void 以外の不完全な型である可能性があります。...

私が理解しているように、この行は #2 と #3 を無効として失格としていますが、#1 については不明です。#1を除外する必要がある静的ストレージクラスの宣言に関連する詳細はありますか?

ありがとう、

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

clang - clang の -ftree-vectorizer-verbose に相当

問題は、どのclangループ (またはコードの他の部分) がベクトル化されたかに関する情報を出力する方法についてです。これを行うために(またはGCCの新しいバージョンで)名前がGCC付けられたコマンドラインスイッチがありますが、 . これをサポートしていますか、それとも私の唯一のオプションは逆アセンブリを覗くことですか?-ftree-vectorizer-verbose=6-fopt-info-vecclangclang

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

linux - clang++ および libc++ を使用する Linux で std::cerr が SIGABRT を引き起こす

clang++ 3.3 libc++ libc++abi でコンパイルされた Ubuntu 12.04 x64 で実行される単純なプログラムを取得しようとしています。

プログラム:

std::cerr に書き込むとメッセージが出力されますが、SIGABRT になります。

ただし、 std::cout への書き込みは正常に機能します。

実行可能ファイルの ldd 出力は次のとおりです。

誰でもこれを修正する方法を教えてもらえますか?

バックトレースは次のとおりです。

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

c++ - C++ Makefile のコンパイル順序

こんにちは、この質問で、コンパイルの順序は重要ではないことを読みましたが、本当に奇妙な状況にあります。

ファイル CCSizePolicy.cpp にはいくつかのグローバル変数があります。それらは次のようになります。

ヘッダーに

CCLayoutParams.h にもあります

および CCLayoutParams.cpp

したがって、プログラムでそれらを使用するときは、 CCLayoutParamsWrapWrap.getWidth() および CCLayoutParamsWrapWrap.getHeight() を呼び出します

これは私に -1 -1 を出力するはずですが、私は 0 0 を持っています...

makefile での順序は次のようになります。

に変更すると

すべてが機能し始めます (私は -1 -1 を取得します) 何が起こっているのですか?

gcc バージョン 4.6.3 で Linux を使用しています (Ubuntu/Linaro 4.6.3-1ubuntu5)

ソース ファイルを名前で並べ替えているため、プロジェクト全体にバグが発生しています。なぜでしょうか??!?!

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

c++ - Boost Log - なぜこれはコンパイルされないのですか?

この 3 時間ほどの間、次のコンパイル エラーに完全に混乱していました。ここで何が起こっているのか誰か教えてもらえますか?

log::formatter (以下にマーク) を独自の変数として定義しようとしたため、いくつかの場所で再利用できました。ただし、再利用しようとするとコンパイルエラーが発生します。

ただし、その変数を完全に削除し、代わりにコードをコピーして貼り付けると、コンパイルされます。一体何?私がやりたいことをする方法はありますか?

コンパイル エラー (clang++ を使用) は次のとおりです。

ただし、代わりにこれに変更すると、コンパイルされます。

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

c++ - gcc または clang でヘッダーを自動的に生成する

ソース ファイルsource.cppを指定して、適切なヘッダーを生成する方法を教えてsource.hppください。

私は Linux 64 ビットを使用しており、コードの記述に費やす時間を短縮し、起こりうるエラーを制限するために、手作業でヘッダーを記述しないようにしたいと考えています。

0 投票する
5 に答える
1703 参照

c++ - 英語以外の文字列をファイルに書き込み、C++ でそのファイルから読み取る方法は?

をファイルに書き込みたいのですstd::wstringが、そのコンテンツを として読み取る必要がありますstd:wstring。これは、文字列がL"<Any English letter>". しかし、ベンガル語、カンナダ語、日本語など、英語以外の文字がある場合に問題が発生します。次のようなさまざまなオプションを試しました:

  1. ファイルへの変換とファイルstd::wstringstd::stringの書き込み、および読み取り時間の読み取りstd::stringと変換std::wstring
    • 書き込みは行われていますが (編集から確認できました)、読み取り時間が間違った文字になっています
  2. wofstreamstd::wstringに書き込むと、これは次のような母国語の文字にも役立ちません。 std::wstring data = L"হ্যালো ওয়ার্ল্ড";

プラットフォームはmacとLinux、言語はC++

コード:

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

c++ - clang がこれをユーザー定義リテラルとして解析するのはなぜですか?

私は、clang 3.3 でコンパイルを開始したことを維持しているコードをいくつか持っています。「-std=c++11」でコンパイルすると、clang でエラーが発生します (以下を参照)。問題のあるコードを次のように抽出しました。

これはclangの出力です:

test.cpp:10:5: エラー: タイプ 'const char *' および 'unsigned int' の引数を持つ 'operator "" __format' の呼び出しに一致するリテラル演算子がありません

文字列リテラルと「__format」の間にスペースがないと、プリプロセッサが __format を展開できるようには見えません。ただし、-std=c++11 を指定しない場合明らかに. G++ 4.4.7 (-std=c++0x の有無にかかわらず) は問題なくコンパイルされます。

コンパイラにエラーはありますか?