C++ 0xについてのこの新しい(on /。)はもう概念を持たないと聞いたことがありますが、私はそれらが何であるか分かりません。誰かが私に説明することはできますか?ここで概念とは何ですか?
22
A
答えて
25
概念テンプレートコードを書く誰かが型パラメータを満たすために必要な要件を指定することができ、一般的なプログラミング機能です。
たとえば、一部のコレクションタイプでは、コレクションのtypeパラメータに<演算子を定義する必要があります。したがって、プログラマはLessThanComparableというコンセプトを定義することができます。コンセプトを定義すると、テンプレート化されたクラスの型パラメータに演算子<が定義されている必要があります。テンプレートユーザがLessThanComparableコンセプトを持たないタイプ(すなわちオペレータ<を持たないタイプ)を使用してテンプレートをインスタンス化しようとすると、コンパイラはテンプレートコードに関連するエラーメッセージの激流ではなく単純なエラーメッセージを出すことができます。コンパイラは、より効率的なコードを生成するために概念によって提供される追加の情報を利用することもできます。
これはあまり単純すぎますが、概念の背後にある一般的な考え方を示していると思います。
概念の機能のいくつかを試したい場合は、Boost.Conceptチェックライブラリをご覧ください。私はそれが標準になるだろう能力のフルレンジを提供するとは思わないが、それは始めるのが良い場所だ。
ConceptC++をご覧になることもできますが、ここには概念の定義があります。
10
は私が役立つだろうと思うの記事です:
http://www.devx.com/SpecialReports/Article/38864
それらを削除するという決定は、同様にSOでここ何回か議論されています。これらは興味深い証明するかもしれない:
関連する問題
- 1. オブジェクトパーシスタンスの概念は何ですか?
- 2. sqlite概念からcoredata概念へ?
- 3. ドメインモデルと概念モデルの違いは何ですか
- 4. 論理データモデルと概念データモデルの違いは何ですか?
- 5. この概念は何と呼ばれていますか?
- 6. 概念
- 7. .NETでのアセンブリの概念は何ですか?
- 8. dartのスナップショットの概念は何ですか?
- 9. HEAD、master、originのgitの概念は何ですか?
- 10. Google Bigtableはマルチテナントデータベースの概念ですか?
- 11. セッションIDをクッキーに保存するという概念は何ですか?
- 12. 概念クラス図
- 13. クラスの概念
- 14. 概念:APIレベルテスト
- 15. インデックスアクセスの概念
- 16. メークファイルの概念
- 17. セレンとc#の概念
- 18. 移転の概念は何を意味していますか?
- 19. Magento:Quote ItemとQuote Address Itemの概念の違いは何ですか?
- 20. Callable概念とstd :: is_function型形質の違いは何ですか?
- 21. Javascriptで 'currying'と 'composition'は同じ概念ですか?
- 22. OOPの概念とは何ですか? (それは確かにある場合、すべてのOOPの概念を!)
- 23. 中レベルの意味概念ですか?
- 24. java threadsの概念
- 25. Windowsワークフローランタイムの概念
- 26. C++概念ヘルプ、ポインタ
- 27. UNIXブロックバッファキャッシュの概念
- 28. HTMLセキュリティの概念
- 29. C++スレッドの概念
- 30. Infinityループスライダの概念
これは、EBGreenのリンクとほぼ同じです。奇妙な偶然の一致? – jkeys
本当にありません。私はその記事がほぼ1年前に最初に出版されたときにその記事を読んだ。私は情報を保持する能力を持っています:-) – Ferruccio
素晴らしい答え。これはC++に関する質問の1つでした。私は恐れていました。 – chester89