最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

function
<typeindex>

# std::type_index::operator>(C++11)

    bool operator>(const type_index& rhs) const noexcept;

## 概要

左辺が右辺より大きいかの判定を行う。

## 戻り値

`rhs.target->before(*target)`

※`target`は、`type_index`のメンバ変数として保持されている`type_info`オブジェクトへのポインタ(説明用)

## 例外

投げない

## 例

    #include <iostream>
    #include <typeindex>
    #include <set>
    #include <string>
    #include <algorithm>
    #include <functional>

    std::string get_typename(const std::type_index& t)
    {
      if (t == typeid(int))    return "int";
      if (t == typeid(double)) return "double";
      if (t == typeid(char))   return "char";
      return "bad type!!!";
    }

    int main()
    {
      std::set<std::type_index, std::greater<std::type_index>> s;

      s.insert(typeid(int));
      s.insert(typeid(double));
      s.insert(typeid(char));

      std::for_each(s.begin(), s.end(), [](const std::type_index& t) {
        std::cout << get_typename(t) << std::endl;
      });
    }

### 出力例

    int
    double
    char

## バージョン

### 言語

- C++11

### 処理系

- Clang: ?
- GCC: 4.6.1 ✅
- ICC: ?
- Visual C++: 2010 ✅, 2012 ✅, 2013 ✅, 2015 ✅, 2017 ✅