decltype()と三項演算子を使用して条件付きで型を選択します

2
PrashantKumarNirmal 2019-12-22 15:08.

私はファイルa.cppを持っています:

#include <bits/stdc++.h>

using namespace std;

int main(){
    int a=5;
    double b=4.3;
    decltype(a>b?a:b) n;
    cout << typeid(n).name();   
}

上記のコードの出力はですdi、「a」が「b」より大きいため、

私はdecltypeについて学ぼうとしています。ここで私が欠けているものを教えていただけますか?

gccバージョン6.3.0(MinGW.org GCC-6.3.0-1)を使用しています。

1 answers

3
Lightness Races in Orbit 2019-12-22 22:27.

C ++は静的に型付けされた言語です。

つまり、モノのタイプは実行時の基準に依存することはできません。

このため、式a>b?a:bは常に同じタイプの値に評価されます。これは、条件演算子の規則の一部です。

この場合、「相互に互換性のあるタイプ」(私はこの用語を作成しました)はdoubleであるため、常にを取得しますdouble(ここのルールを参照してください)。

場合はa勝利条件、それはから変換されますintまでdoubleに除いて、decltypeあなたのコードは「未評価コンテキスト」である(実行時には何もおそらく結果に影響することはできませんので)状態でも行われていないので、唯一の可能な結果の種類は以下から算出され、条件演算子への引数のタイプ。結果として生じる可能性のあるタイプが複数ある場合、コードはあいまいになり、プログラムはコンパイルできなくなります。

のような魔法でこの振る舞いを得ることができますがstd::variant本当にそれ必要かどうかを検討してください。

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

ホワイトハウスの最も記憶に残る結婚式を見てください

ホワイトハウスの最も記憶に残る結婚式を見てください

過去200年以上の間にホワイトハウスで結婚したのはほんの数人です。彼らは誰でしたか、そしてそこで結婚式を獲得するために何が必要ですか?

ライアン・フェルトンがジャロプニックを去る。アメリカの詐欺と嘘つきは安堵のため息をつく。スタッフが再び昼食時に肉を注文する

ライアン・フェルトンがジャロプニックを去る。アメリカの詐欺と嘘つきは安堵のため息をつく。スタッフが再び昼食時に肉を注文する

「あなたは知っているべきです」とライアン・フェルトンは電話にひそかに言いました、「私は本当にできないこと。

今日だけMovadoウォッチが50%オフで、手首にちょっとした贅沢を加えましょう

今日だけMovadoウォッチが50%オフで、手首にちょっとした贅沢を加えましょう

ノードストロームラックのMovadoイベントMovadoは、クラシックで象徴的な時計ブランドですが、価格が1,000ドルを超えるため、ほとんどの人にとって信じられないほど手に負えないと感じる可能性があります。しかし、ノードストロームラックのMovadoイベントを使用すると、小売価格の半分でゴージャスな時計を獲得できます。いくつかのスタイルは400ドル未満で提供されます。

L7は18年ぶりのショーをプレイしました

L7は18年ぶりのショーをプレイしました

これは素晴らしいことです。L7のオリジナルラインナップは18年ぶりに再会し、LAのエコーで完売したショーを演奏しました。

「またの名をグレイス」は、見られているという不穏な感覚を体現しています。

「またの名をグレイス」は、見られているという不穏な感覚を体現しています。

「またの名をグレイス」ジョーダン博士は、19世紀半ばのカナダの性別の役割と階級の違いが、グレイスの心を解き放とうとし続けています。

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya shared a sweet photo in honor of boyfriend Tom Holland's 26th birthday Wednesday

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

シーレン「Ms.JuicyBaby」ピアソンは、先月脳卒中で入院した後、「もう一度たくさんのことをする方法を学ばなければならない」ため、言語療法を受けていることを明らかにしました。

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

オスカー受賞者の世紀半ばの家には、3つのベッドルーム、2つのバス、オーシャンフロントの景色があります。

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、生後4か月の娘、モナコに母乳育児をしていると語った。

活性化関数

活性化関数

活性化関数は、ニューラルネットワークの設計における重要な部分の1つです。モデルのパフォーマンスを向上させるには、これらの関数をよく理解する必要があります。

準備をしなさい、NASAがノーザンテリトリーからロケットを打ち上げます!

NASAは初めて、米国外の商用打ち上げサイトから打ち上げられます!

準備をしなさい、NASAがノーザンテリトリーからロケットを打ち上げます!

今日はNASA、オーストラリア、そして全世界にとって重要な日です。NASAはAESTの午後11時15分に、オーストラリアから27年ぶりのロケットを打ち上げます。さらに重要なことに、アメリカ以外の商業サイトから打ち上げるのはこれが初めてです。

宇宙:衛星、破片、戦争

宇宙:衛星、破片、戦争

どのプレーヤーがどの方向に動くかがはっきりしないサッカーの試合を想像してみてください。さて、私がこれから始める理由は、あなたがそのスペースを訪れていない可能性が非常に高いからです。私も訪れていません。

ガリレオは私たちのプロジェクトを誇りに思っていただろう

ガリレオは私たちのプロジェクトを誇りに思っていただろう

今週末、12人のガリレオプロジェクトのメンバーが私の家の裏庭に集まりました。プロジェクトが1年前に考案されて以来、新しい望遠鏡を通して基本的な質問への答えを見つけるというガリレオガリレイの遺産に触発されて、歴史的な1週間の終わりを祝いました。

Language