問題タブ [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.
c++ - C++ テンプレート関数で述語関数が有効であることを確認する
以下のような述語関数を受け入れる関数を書くとき。述語関数が有効であること (つまり、戻り値の型operator()
が有効であること) をどのように確認できますか?
C++11 の type-traits 機能を見回したところ、 からへstd::is_convertible<From,To>
の適切な暗黙的な変換があることを確認するためにそれを使用する方法がわかりませんが、それが役立つように見えるを発見しました。私が考えることができたのは、次のことだけでした。operator()
bool
または:
しかし、どちらも私には正しく見えません。
c++ - std クラスがコピー不可能な型で static_assert を使用しないのはなぜですか?
std ライブラリが代わりにこれらを使用しないのはなぜですか? 現在、コピー不可能なオブジェクトでコピー コンストラクターが呼び出された場合、エラー メッセージは少し「不可解」であるか、これまで遭遇したことがない人にとっては混乱を招く可能性があります。
初めてこのエラーメッセージが表示されたとき、クラスを調べて「コピー不可」を確認し、最終的に理解するまで、何が問題なのかわかりませんでした (アクセスできない ctors のアイデアは考えたこともありませんでした)。
copy-ctor を非公開にするメリットは何ですか? ctor オーバーロードの VS Intellisense では引き続き表示されます。
なぜ彼らは単に次のことを選択しなかったのですか:
コードをコンパイルしようとすると、このエラー メッセージが表示され、エラーの理由がより明確に示されます。(const someClass&) と比較するとアクセスできません。テンプレートを多用すると、これを理解するのがどれほど難しいか想像してみてください。
では、プライベート copy-ctor と static_assert にはどのような利点があるのでしょうか?
c++ - 宣言されているが定義されていない演算子の存在をテストする場合、static_assert は本当に成功する必要がありますか?
static_assert
以下が成功するのはなぜですか?オペレーターをフレンドにしただけで、<<
どこにも作っていません。
c++ - 静的アサートでこのポインターを参照していますか?
「this」ポインタを参照する静的アサートを書くことは可能ですか? 私は c++11 を利用できず、BOOST_STATIC_ASSERT が機能しません。
プロデュース:
MSVC 2008 で。
動機: