問題タブ [c++11]
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++ で変数の型を出力することは可能ですか?
例えば:
期待される出力:
c++ - クラスに特定の署名のメンバー関数があるかどうかを確認します
クラスに特定の署名の特定のメンバー関数があるかどうかを検出するためのテンプレート トリックを求めています。
この問題は、ここで引用されているものと似ています http://www.gotw.ca/gotw/071.htm しかし、同じではありません.Sutterの本の項目で、彼はクラスCがメンバー関数を提供しなければならないという質問に答えました.そうしないと、プログラムはコンパイルされません。私の問題では、クラスにその機能がある場合は何かをする必要があり、そうでない場合は「何か他のこと」をする必要があります。
同様の問題が boost::serialization によって直面されましたが、私は彼らが採用した解決策が好きではありません: 特定のメンバー関数を定義しない限り、特定のシグネチャを持つ無料の関数 (定義する必要がある) をデフォルトで呼び出すテンプレート関数 (その場合、特定の型の 2 つのパラメーターを受け取る「シリアル化」) を特定の署名で行うと、コンパイル エラーが発生します。つまり、侵入型と非侵入型の両方のシリアライゼーションを実装することです。
私は次の 2 つの理由から、このソリューションは好きではありません。
- 邪魔にならないようにするには、boost::serialization 名前空間にあるグローバルな「serialize」関数をオーバーライドする必要があります。そのため、クライアント コードで名前空間のブーストと名前空間のシリアル化を開く必要があります。
- その混乱を解決するためのスタックは、10 から 12 の関数呼び出しでした。
そのメンバー関数を持たないクラスのカスタム動作を定義する必要があり、私のエンティティは異なる名前空間内にあります (そして、ある名前空間で定義されたグローバル関数を別の名前空間でオーバーライドしたくありません)。
このパズルを解くヒントを教えてください。
c++ - スマート ポインターとは何ですか? また、いつ使用する必要がありますか?
スマート ポインターとは何ですか? また、いつ使用する必要がありますか?
c++ - お気に入りの C++0x 機能は何ですか?
私たちの多くが知っているように (そして知らない人もたくさんいますが)、C++ は現在、約 2 年後に発行される予定の国際標準の次の改訂版の最終草案を作成中です。ドラフトと論文は現在、委員会のウェブサイトから入手できます。あらゆる種類の新機能が追加されていますが、最大のものはコンセプトとラムダです。多くの新機能を含む非常に包括的なウィキペディアの記事があります。GCC 4.3 以降では、一部の C++0x 機能が実装されています。
新機能に関する限り、私は型特性 (および適切な概念) が本当に好きですが、私の明確なリーダーは可変個引数テンプレートです。0x までは、通常、長いテンプレート リストには Boost Preprocessor が含まれており、非常に書きにくいものでした。これにより作業がはるかに簡単になり、可変個引数テンプレートを使用して C++0x テンプレートを完全に機能する言語のように扱うことができます。私はすでにそれらを使っていくつかの非常にクールなコードを書いています。
では、最も期待している機能は何ですか?
c++ - Visual Studio は新しい C / C++ 標準をサポートしていますか?
私は C99 と C++11 について読み続けており、これらすべてが言語標準に追加されつつあり、いつか使用すると便利になるかもしれません。しかし、私たちは現在、Visual Studio で C++ を作成することで苦しんでいます。
標準の新しいものがビジュアル スタジオに追加されることはありますか?それとも、Microsoft はそれを行うために新しい C# バリアントを追加することにもっと関心を持っていますか?
編集: 受け入れられた回答に加えて、Visual C++ チームのブログを見つけました:
具体的には、その中のこの投稿:
非常に便利。ありがとう!
c++ - C++ にガベージ コレクタがないのはなぜですか?
まず第一に、ガベージ コレクションのメリットがあるため、この質問をしているわけではありません。私がこれを質問する主な理由は、Bjarne Stroustrup が C++ にはいつかガベージ コレクタが搭載されるだろうと言ったことを知っているからです。
そうは言っても、なぜ追加されていないのですか?C++ 用のガベージ コレクタは既にいくつかあります。これは、「言うは易く行うは難し」タイプのものの 1 つにすぎませんか? それとも、追加されていない (C++ 11 では追加されない) 他の理由がありますか?
相互リンク:
明確にするために、C++ が最初に作成されたときにガベージ コレクターがなかった理由を理解しています。なぜコレクターを追加できないのか不思議です。
c++ - C++0x の詳細はどこで確認できますか?
C++0x についてもっと知りたいです。良い参考文献やリソースは何ですか? このテーマについて良い本を書いた人はいますか?
c++ - 並行プログラミングC++?
私はどこでも並行プログラミングについて耳にします。それが何であるか、そしてC++の新しい標準が同じことをどのように容易にするかについて、いくつかの光を当てることができますか?
c++ - C++0X いつ?
重複の可能性:
C++0x はいつ完成しますか?
C++0X に関する最新ニュースは何ですか? (または C++1X と言うべきか) リリース日はまだ決まっていませんか?
c++ - C++ のガベージ コレクション -- なぜですか?
C++ にはガベージ コレクションがないという不満をよく耳にします。また、C++ 標準委員会がそれを言語に追加することを検討していると聞いています。残念ながら、そのポイントがわかりません...スマートポインターでRAIIを使用すると、その必要がなくなりますよね?
ガベージ コレクションに関する私の唯一の経験は、数台の安価な 80 年代の家庭用コンピューターで、システムが頻繁に数秒間フリーズすることを意味していました。それ以来、それは改善されたと確信していますが、ご想像のとおり、それは私に高い意見を残しませんでした.
経験豊富な C++ 開発者にとって、ガベージ コレクションにはどのような利点がありますか?