問題タブ [conversion-operator]

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 投票する
2 に答える
1936 参照

c++ - static_cast と変換演算子の直接呼び出し?

簡単な例として、次のクラスを考えてみましょう。

変換演算子を直接呼び出す必要がありますか、それとも単に呼び出しstatic_castてそれで処理を任せるべきでしょうか?

これら 2 つの行はほとんど同じことを行います (つまり、変換演算子を呼び出します)。私が知る限り、これらの動作に実際の違いはありません。したがって、ここでの本当の問題は、それが本当かどうかです。これらは私には同じように見えますが、理解できない微妙な違いがまだある可能性があります.

では、構文が異なるという事実以外に、これらのアプローチ (この例には当てはまらない可能性があるものも含む) の間に実際的な違いはありますか? どちらを優先する必要がありますか?その理由は?

0 投票する
0 に答える
101 参照

c++ - 参照型と非参照型の変換演算子テンプレートを区別する

私は、struct InferValueType参照型を含む他の型に暗黙的に変換できる を持っています。次のコードを使用してこれを実現します。

InferValueTypeユーザーによってインスタンス化されることはありません。代わりに、関数の戻り値として提供します。

との組み合わせによりInferValueTypereadユーザーは次のような遅延コードを記述できます。

これを GCC 4.8、4.9、5、6、および Clang 3.7 と 3.8 に対してテストしました。GCC 4.8 だけがあいまいさについて文句を言います。

これは、 and をそれぞれ and を使用して構築できるためだと思いintます。MyTypeconst int&const MyType&

質問:これは 4.9.2 より前の GCC の特性ですか、それとも実際には C++11 でのあいまいさですか?

完全な例はこちらです。

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

c++ - 「T」がテンプレート型パラメータである場合、「Base::operator T」を使用できますか?

次の例を検討してください。

GCCはコードを受け入れますが、Clangと MSVC はコードを拒否します。どちらが正しい?

基本型が依存型の場合、すべてのコンパイラがコードを受け入れることに注意してください。

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

c++ - 変換関数テンプレートのオーバーロード

次の点を考慮してください。

の状況bは簡単で、#2実行可能な唯一の候補です。の初期化に#2は が好まれるが、 の初期化には 2 つがあいまいであることを示すルールは何ですか?#1int const&int

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

c++ - このクラスが暗黙的にポインターに変換されないのはなぜですか?

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

c++ - オペレーターを考慮して自動控除を強制する方法はありますか() オーバーコピー割り当て?

このラッパーを介して基になる変数が変更されたときに変更を通知する変数ラッパーがあるため、他のオブジェクトが変更をリッスンできます。

それは問題なく動作します (つまり、基礎となるオブジェクトでメンバー関数を代入、追加、減算、呼び出しできます (ただし、これらには変更を通知する方法はありません) など)、わずかな問題が 1 つあります。

valuehere は として正しく推定されますwrapper<int>。このコンストラクトsome_object.some_wrapperを typeintのように動作させて、変数valueとして推定する方法はありますか?int