問題タブ [prvalue]
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++でこれをやろうとしています:
そして、Visual Studio 2015 で「式は左辺値または関数指定子でなければなりません」というエラーが表示されます。そのため、どこが間違っているのかわかりません。私の知る限り、&this
タイプAbc**
を正しくする必要がありますか?
関数定義は私が変更するものではありません。したがって、パラメーターの型を変更することはできません。
c++ - 特定の型の式を prvalue で呼び出すことができるかどうかをテストするにはどうすればよいでしょうか?
C++17 では、is_invocable
実際には値ではない派手な新しい prvalues と派手な新しい prvalues があります。
これにより、最初にオブジェクトを論理的に構築し、次に構築を省略せずにオブジェクトを作成できます。
何かを呼び出すことができるかどうかをテストするために使用std::is_invocable
すると、prvalue ルールが衝突するように見えるという問題に遭遇しました。
f
type の prvalue を使用して呼び出すことができるかどうかを尋ねることができますno_move
か?
std::is_invocable< decltype(&f), no_move >
type の prvalue ではないstd::declval<no_move>()
ような xvalue を使用するため、機能しません。no_move&&
no_move
c++14でもこれは同じでしたが、保証された省略により、一部の関数は xvalue (つまり " T&&
") で呼び出し可能になり、他の関数は type の prvalue で呼び出し可能になりT
ます。
代替手段はありますか、それともこのケースを処理するために独自の特性を発明する必要がありますか?
( の代わりにstd::declval<T>
返される理論的な世界では、正しいことをすると私は信じています)。T
T&&
is_invocable