セット<T>対セット<T、コンパレータ>(C ++ポリモーフィズム)

リチャード・ドライスダル

このコードはなぜですか

struct ThingComparator
{
    ...
}

static void Blah (set <CString> &things)
{
    ...
}

...

set<CString, ThingComparator>things;
Blah (things);

次のエラーでコンパイルに失敗します(Visual Studio 2010):

error C2664: 'Blah' : cannot convert parameter 1 from 'std::set<_Kty,_Pr>' to 'std::set<_Kty> &'

私のC ++の知識は明らかに限られていますが、信頼できる馬に乗ってポリモーフィズムの騎士を発表するトランペットを聞くことを期待していましたが、代わりに聞こえるのは馬のおならと悲しいトロンボーンだけです:-(

右折り

std::set次のように宣言されています

template<
    class Key,
    class Compare = std::less<Key>,
    class Allocator = std::allocator<Key>
> class set;

したがって、std::set<CString>実際にはを意味しstd::set<CString, std::less<CString>, std::allocator<CString>>、でstd::less<CString>はありませんThingComparator代わりに次のように書いてください。

struct ThingComparator {
    ...
};

template<typename Comparator>
static void Blah(std::set<CString, Comparator>& things) {
    ...
}

...

std::set<CString, ThingComparator> things;
Blah(things);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

数値セットC ++によるポリモーフィズムのメモリリーク

分類Dev

C#ジェネリックポリモーフィズム

分類Dev

アクセス違反。C ++ポリモーフィズム

分類Dev

C#ポリモーフィズム/リスト

分類Dev

C ++ STLセットカスタムコンパレータ

分類Dev

ポリモーフィズムによるC ++テンプレートメソッドのオーバーロードとクラスアクセス

分類Dev

C#のポリモーフィズムのコピーコンストラクター

分類Dev

ポリモーフィズムを持つC#ジェネリック

分類Dev

C#ジェネリック型のポリモーフィズム

分類Dev

c ++デコレータパターン、テンプレートを使用した静的ポリモーフィズム、およびコールバックメソッドの登録

分類Dev

C ++ポリモーフィズムは子コンストラクターを使用します

分類Dev

C#ポリモーフィズムとメソッドの継承

分類Dev

C ++テンプレート、ポリモーフィズム、およびテンプレート共分散

分類Dev

C ++のポリモーフィズム-ポインタを介したアクセス関数

分類Dev

ポリモーフィズムとの1対多の関係のクエリセットから関連モデルを取得する

分類Dev

C ++ポリモーフィズム基本クラスポインタをベクトルに格納する

分類Dev

ポリモーフィズム:ポリモーフィック参照の目的

分類Dev

テンプレート/ポリモーフィズム

分類Dev

一緒に使用されるC ++テンプレートポリモーフィズム

分類Dev

リポジトリパターンのジェネリックスによるポリモーフィズム

分類Dev

C#のリストのリストでポリモーフィズムを使用する方法

分類Dev

コレクション内のスマートポインターポリモーフィズム

分類Dev

C#ポリモーフィズム+ジェネリックデザイン-アドバイスが必要

分類Dev

ポリモーフィズムとC ++のクラステンプレートからのメソッドのオーバーライド

分類Dev

ポインターを使用せずにCでポリモーフィズムをシミュレートする

分類Dev

C ++でのアーリーバインディングとレイトバインディング+ポリモーフィズム

分類Dev

C ++ブーストシリアル化ポリモーフィズムの質問

分類Dev

Kafka-メッセージ対レコード対オフセット

分類Dev

ポリモーフィズムとコンストラクター

Related 関連記事

  1. 1

    数値セットC ++によるポリモーフィズムのメモリリーク

  2. 2

    C#ジェネリックポリモーフィズム

  3. 3

    アクセス違反。C ++ポリモーフィズム

  4. 4

    C#ポリモーフィズム/リスト

  5. 5

    C ++ STLセットカスタムコンパレータ

  6. 6

    ポリモーフィズムによるC ++テンプレートメソッドのオーバーロードとクラスアクセス

  7. 7

    C#のポリモーフィズムのコピーコンストラクター

  8. 8

    ポリモーフィズムを持つC#ジェネリック

  9. 9

    C#ジェネリック型のポリモーフィズム

  10. 10

    c ++デコレータパターン、テンプレートを使用した静的ポリモーフィズム、およびコールバックメソッドの登録

  11. 11

    C ++ポリモーフィズムは子コンストラクターを使用します

  12. 12

    C#ポリモーフィズムとメソッドの継承

  13. 13

    C ++テンプレート、ポリモーフィズム、およびテンプレート共分散

  14. 14

    C ++のポリモーフィズム-ポインタを介したアクセス関数

  15. 15

    ポリモーフィズムとの1対多の関係のクエリセットから関連モデルを取得する

  16. 16

    C ++ポリモーフィズム基本クラスポインタをベクトルに格納する

  17. 17

    ポリモーフィズム:ポリモーフィック参照の目的

  18. 18

    テンプレート/ポリモーフィズム

  19. 19

    一緒に使用されるC ++テンプレートポリモーフィズム

  20. 20

    リポジトリパターンのジェネリックスによるポリモーフィズム

  21. 21

    C#のリストのリストでポリモーフィズムを使用する方法

  22. 22

    コレクション内のスマートポインターポリモーフィズム

  23. 23

    C#ポリモーフィズム+ジェネリックデザイン-アドバイスが必要

  24. 24

    ポリモーフィズムとC ++のクラステンプレートからのメソッドのオーバーライド

  25. 25

    ポインターを使用せずにCでポリモーフィズムをシミュレートする

  26. 26

    C ++でのアーリーバインディングとレイトバインディング+ポリモーフィズム

  27. 27

    C ++ブーストシリアル化ポリモーフィズムの質問

  28. 28

    Kafka-メッセージ対レコード対オフセット

  29. 29

    ポリモーフィズムとコンストラクター

ホットタグ

アーカイブ