問題タブ [static-assert]

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

java - Junit4 で障害トレースを取得する方法

私の Junit テストでは、通常は「AssertEquals」を使用します。テストが失敗すると、JUnit/Eclipse の失敗トレースにトレースが適切に表示されます。これらのトレースを取得してファイルに表示する方法を知りたいですか?

ファイル内のアサート失敗トレースを出力/リダイレクトするにはどうすればよいですか? ありがとう

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

c++ - static_assert を使用して、マクロに渡された型を確認します

残念ながら、私のライブラリの元のバージョンからいくつかのマクロが残っていて、かなりクレイジーな C を使用していました。特に、特定の型が渡されることを期待する一連のマクロがあります。次の行に沿って何かをすることは可能ですか:

そしてどうやって?賢い代替手段はありますか?

はい、マクロが悪いことは承知しています。C++ は C などではないことは承知しています。

Update0

関連するコードソース ファイルを次に示します。提案は大歓迎です。元の質問は同じままです。

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

c++ - static_assert の decltype

クラスの定義でこれ (static_assert) が機能しないのはなぜですか?

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

c++ - decltype の別の問題

VS2010を使用。
上記のコードの 3 つのコメントを参照してください。

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

c++ - ポインタキャストが自明であるという静的アサートを行う方法は?

これらのタイプがあるとしましょう:

ポインターは、実際のアドレスをまったく調整せずにポインターにC*キャストできます。A*しかし、C*が にキャストされるB*と、値は変更されなければなりません。私が持っている 2 つの関連する型を、アドレスを変更せずに互いにキャストできるようにしたいと思います (つまり、多重継承がないか、基底クラスが派生クラスの最初の基底であること)。これは実行時にチェックできます。

それはうまくいきます。しかし、この情報はコンパイル時にわかっているので、コンパイル時にアサートする方法を探しています。上記を静的アサートに変換する明らかな方法 (たとえば、g++ 4.2.2 で「整数型または列挙型以外の型へのキャストは定数式に表示できません」というエラーassertを与えると置き換えます)。BOOST_STATIC_ASSERT

携帯性はあまり重要ではありません。gcc 拡張機能やハッキーなテンプレート トリックを使用しても問題ありません。

更新:以前にほぼ同じ質問がされていることがわかりました: C++, statically detect base classes with different address? . 使用offsetof()することも唯一の有用な提案です。

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

c++ - 文字列リテラルを static_assert に追加する

static_assert によって出力されるものを組み合わせる方法はありますか? 私が意味するのはこれです:

0 投票する
4 に答える
804 参照

c - 変数が静的かどうかを確認するために静的アサートを追加するにはどうすればよいですか?

静的ローカル変数でのみ適切に機能するマクロがあります (インライン アセンブリ表記を使用して変数に関するデータを抽出するため)。マクロへの入力が実際に静的ローカル変数であることを強制する方法が必要です。

正しい:

正しくありません:

C用のGCC(C++なし)を使用しています。

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

c++ - 式が一時的なものかどうかをテストするにはどうすればよいですか?

次のマクロを使用します。

疑問符は何を付ければいいですか?

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

c++ - C++0x では、エラーの代わりに警告を出す static_assert のようなものはありますか?

非効率的であるが、必ずしも正しくない可能性がある使用法に対してこれを行いたいと思います。