問題タブ [implicit-conversion]
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での暗黙の変換?
何が起きてる:
出力:
これらの変数を印刷する前に型を確認すれば、もちろん問題なく動作します。2 番目の print ステートメントが暗黙的に 1.00000 に変換されないのはなぜですか?
sql-server - この場合、SQL Serverの暗黙的な型キャストはどのように機能しますか?
SQL Serverでこのアドホッククエリを試してみると(UserId
NVARCHARフィールドであると想定):
このエラーが発生します:
明らかに'foo'
、私の列のどこかに値がありUserId
ます。
SQL Serverが、検索値をNVARCHARに変換するという、私には明らかなことを行うのではなく、列全体をINTEGERに変換しようとするのはなぜですか?
c# - 静的暗黙演算子
私は最近このコードを見つけました:
どういうstatic implicit operator
意味ですか?
c++ - いつ直接初期化を使用し、いつコピー初期化を使用する必要がありますか?
それは単に好みですか、それとも特定のインスタンスが必要な場合がありますか? 初期化のために次のバリアントを参照しています
iphone - 暗黙的な変換により、64ビットが32ビットに短縮されます
誰かがこれがタイトルに記載されているエラーを引き起こす理由を説明できますか?
ありがとう
c++ - 定義にアクセスせずにヘッダー ファイルでクラスを使用しますか?
これは、 Google の C++ コーディング ガイドラインからの抜粋です。
定義にアクセスせずにヘッダーファイルでクラス Foo を使用するにはどうすればよいですか?
- Foo* または Foo& 型のデータ メンバーを宣言できます。
- Foo 型の引数および/または戻り値を持つ関数を宣言できます (定義はできません)。(1 つの例外は、引数 Foo または const Foo& に非明示的な 1 つの引数のコンストラクターがある場合です。この場合、自動型変換をサポートするには完全な定義が必要です。)
- Foo 型の静的データ メンバーを宣言できます。これは、静的データ メンバーがクラス定義の外で定義されているためです。
私が気になるのは、2 番目の箇条書きの例外です。これはなぜですか?自動型変換をサポートしたいのに、なぜ完全な定義が必要なのですか?
私の推測では、暗黙的な変換で一時オブジェクトが作成されるため、コンパイラーは宛先タイプの完全な定義を必要としていると思います。私は正しく推測していますか?それ以上のことはありますか?
編集:
私が見ているように、ガイドラインの例外は次のような状況に対処しています:
ここでは、ユーザー定義の暗黙的な変換 (int から A へ) が 1 つだけあり、const & を受け入れるコンストラクターを呼び出します。この例外で意味のある唯一のことは、たとえば int から A への直接変換をサポートし、次に A const & を受け入れるコンストラクターを介して B への直接変換をサポートすることです。これにより、A クラスが存在するヘッダー ファイルを明示的に含める必要なく、クライアント コードがこの変換チェーンを使用できるようになります。宣言した。
c++ - プリミティブの C++ の暗黙的な変換に関する警告またはエラー
いくつかの C++ コードの大幅なリファクタリングを行ったところ、私が気付いていない暗黙的な変換に起因する多数のバグが発見されました。
例
問題
- では
b
、 の戻り値の型a
は暗黙のうちに にキャストされbool
ます。 - では
c
、 から返された値b
はサイレントに に昇格されint64_t
ます。
質問
プリミティブ型間の暗黙的な変換に関する警告またはエラーを受け取るにはどうすればよいですか?
ノート
- の使用は
-Wconversion
、上記の例とは関係のないいくつかの任意の変換のみをピックアップするようです。 BOOST_STRONG_TYPEDEF
はオプションではありません (ディスク構造で使用されるため、私のタイプは POD である必要があります)。- C も重要ですが、この問題は C++ コード ベースに関連しています。
c# - C# の暗黙のキャスト「オーバーロード」とリフレクションの問題
次のコードに問題があります (コンパイルはできますが、クラッシュします)。
機能しないステートメントにコメントしました。Convert.ChangeType と PropertyInfo.SetValue が MyBoolean で定義されている「オーバーロードされた」キャスト演算子を使用していないように見える理由を知っている人はいますか?
ところで、ここで他のいくつかのドキュメントを参照してきましたが、問題と完全に一致するものは見つかりませんでした。
よろしくトーマス
c++ - g++ コンパイラと暗黙の変換
C++ プログラムのコンパイルに g++ を使用していますが、たとえば int と dooble などの型の間の暗黙的な変換を停止したい: double をパラメーターとして使用する関数がありますが、この関数のパラメーターに int を送信すると、エラーや警告のないコンパイル パス。
それが私の質問です、暗黙の変換を停止する方法は??
ありがとう。
scala - 暗黙の変換、インポートが必要かどうか?
私は書きます
私のプログラムで。これにより、コンパイル エラーが発生します。挿入したら
その後、動作します。
Odersky のProgramming in Scalaから、ソースのコンパニオン オブジェクトまたは予想されるターゲット タイプの暗黙的な変換をインポートする必要がないことがわかりました。