問題タブ [most-vexing-parse]
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++ - コンストラクターが使用可能なオブジェクトを返さない
コンストラクターに問題があり、期待どおりに機能していません。
そのようにクラスを初期化しようとすると、うまくいき、使用可能なオブジェクトが得られます。
ただし、以下のようなクラス (同等である必要があります) を構築しようとすると、結果はまったく予期しないものになります。プログラムのコンパイルまたは実行時に、エラー メッセージや警告は表示されません。しかし、この変数 a をどこかで使用してそのメソッド (a.doSomething() など) を呼び出そうとすると、クラッシュします。
コンストラクター内にコードを入れて、使用されているかどうかを通知します。この場合、コンストラクター内のコードは実際には実行されていないことが判明しました。
なぜこれが起こっているのだろうか?2回目の申告は違法ですか?
編集:クラスのコードをいくつか投稿します
c++ - テンプレート パラメーターの typeid の検索
コンストラクタの定義の print 文が出力されないのですが、コンストラクタの呼び出しは main で正しいのでしょうか? ここでいくつかの点が欠けていることはわかっています。指摘してください。
c++ - 最も厄介な解析
ここからコードを取得しました。
見た目から、次の行によりコンパイルエラーが発生するはずです。
ただし、 が存在する場合にのみ発生し return time_keeper.get_time();ます。
なぜこの行が重要なのか、コンパイラーはtime_keeper(Timer() )構造のあいまいさを見つけるでしょう。
c++ - なぜこれは厄介な解析ではないのですか?
基本的に、これは最も厄介な解析に関するこの質問のフォローアップです。これは、関数宣言と変数定義の間のあいまいさが原因であることがわかります。
しかし、コモーオンラインでは、次のことに疲れました。
しかし、それはうまくコンパイルされ、エラーはありませんでした。標準ドキュメントを調べましたが、理由がわかりませんでした。
それで、私はここで何が欠けていますか?
c++ - 値がベクトルに含まれているかどうかを確認するにはどうすればよいですか?C ++
contains関数を実行しようとしているベクトルがあります。ある種のキャストエラーが発生し、解決策をまとめることができません。また、自分が行っていることが、ベクトルに値が含まれているかどうかを確認する適切な方法であるかどうかを知りたいと思っています。
コードは次のとおりです。
c++ - 引数として非const参照を持つコンストラクターが一時オブジェクトで呼び出されるのはなぜですか?
以下にサンプルコードがあります。
上記のコードでは、XYZコンストラクターは引数を非const参照として受け取りますが、fun関数のコンパイルに失敗すると、正常にコンパイルされます。これはg++コンパイラに固有ですか、それともc ++標準はそれについて何かを言わなければなりませんか?
編集:
g++-vはこれを与えます。
gccバージョン4.5.2(Ubuntu / Linaro 4.5.2-8ubuntu4)
c++ - このコードがコピーを除外できるのはなぜですか?
重複の可能性:
コンストラクター呼び出しメカニズム
空の括弧セットを使用して引数なしでコンストラクターを呼び出すとエラーになるのはなぜですか?
このコードが A のすべてのコピーを削除できるのはなぜですか?
このコードは明らかに のコピーを作成せずA、ideone の gcc 3.4 では何も出力しません。
c++ - () を使用してクラスのインスタンスを作成する
ClassName instance()質問があります: C++ でクラスのインスタンスを作成する場合、どのコンストラクターを使用しますか?
例:
ありがとう !
c++ - C ++-コンストラクターがプライベートの場合、これは何をしますか?
以下のコードで、コンパイラがmClass2に対して文句を言わないのはなぜですか?
c++ - 最も厄介な解析についての紛らわしい詳細
私の質問は、次の行を関数宣言として解析する方法です。
Most Vexing Parseの詳細のほとんどと、2番目の一時イテレーターが、イテレーターを返し、引数をとらない関数である型として解釈できる理由を理解していますが、最初の一時イテレーターがタイプとして解釈されます。それはどのようなタイプを表していますか?ある種の関数型になると思いますが、名前cinがどのように使われるのかわかりません。istream_iterator<int>パラメータが名前付きであることを宣言していますcinか?もしそうなら、それはあなたが関数への引数の名前を任意に括弧でくくることができることを意味しますか?もしそうなら、なぜですか?