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::less_equal<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;
});
}
xxxxxxxxxx
#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::less_equal<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;
});
}
出力例
char
double
int
バージョン
言語
- C++11
処理系
- Clang: ?
- GCC: 4.6.1 ✅
- ICC: ?
- Visual C++: 2010 ✅, 2012 ✅, 2013 ✅, 2015 ✅, 2017 ✅