C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- æ ååºå¤´æä»¶ <ctime>
- æ ååºå¤´æä»¶ <cstring>
- æ ååºå¤´æä»¶ <set>
- æ ååºå¤´æä»¶ <cctype>
- æ ååºå¤´æä»¶ <cwctype>
- æ ååºå¤´æä»¶ <utility>
- æ ååºå¤´æä»¶ <queue>
- æ ååºå¤´æä»¶ <complex>
- æ ååºå¤´æä»¶ <iterator>
- æ ååºå¤´æä»¶ <algorithm>
- æ ååºå¤´æä»¶ <valarray>
- æ ååºå¤´æä»¶ <numeric>
- æ ååºå¤´æä»¶ <cmath>
- æ ååºå¤´æä»¶ <iosfwd>
- æ ååºå¤´æä»¶ <ios>
- æ ååºå¤´æä»¶ <iomanip>
- æ ååºå¤´æä»¶ <streambuf>
- æ ååºå¤´æä»¶ <istream>
- æ ååºå¤´æä»¶ <ostream>
- æ ååºå¤´æä»¶ <iostream>
- æ ååºå¤´æä»¶ <sstream>
- æ ååºå¤´æä»¶ <clocale>
- æ ååºå¤´æä»¶ <vector>
- æ ååºå¤´æä»¶ <deque>
- æ ååºå¤´æä»¶ <list>
- æ ååºå¤´æä»¶ <map>
- æ ååºå¤´æä»¶ <cwchar>
- æ ååºå¤´æä»¶ <locale>
- æ ååºå¤´æä»¶ <codecvt>
- æ ååºå¤´æä»¶ <bitset>
- æ ååºå¤´æä»¶ <functional>
- æ ååºå¤´æä»¶ <stdexcept>
- æ ååºå¤´æä»¶ <csignal>
- æ ååºå¤´æä»¶ <csetjmp>
- æ ååºå¤´æä»¶ <stack>
- æ ååºå¤´æä»¶ <cassert>
- æ ååºå¤´æä»¶ <cerrno>
- æ ååºå¤´æä»¶ <memory>
- æ ååºå¤´æä»¶ <typeindex>
- æ ååºå¤´æä»¶ <type_traits>
- æ ååºå¤´æä»¶ <chrono>
- æ ååºå¤´æä»¶ <initializer_list>
- æ ååºå¤´æä»¶ <tuple>
- æ ååºå¤´æä»¶ <scoped_allocator>
- æ ååºå¤´æä»¶ <cstdint>
- æ ååºå¤´æä»¶ <cinttypes>
- æ ååºå¤´æä»¶ <system_error>
- æ ååºå¤´æä»¶ <cuchar>
- æ ååºå¤´æä»¶ <array>
- æ ååºå¤´æä»¶ <forward_list>
- æ ååºå¤´æä»¶ <unordered_set>
- æ ååºå¤´æä»¶ <unordered_map>
- æ ååºå¤´æä»¶ <random>
- æ ååºå¤´æä»¶ <ratio>
- æ ååºå¤´æä»¶ <cfenv>
- æ ååºå¤´æä»¶ <regex>
- æ ååºå¤´æä»¶ <atomic>
- æ ååºå¤´æä»¶ <thread>
- æ ååºå¤´æä»¶ <mutex>
- æ ååºå¤´æä»¶ <future>
- æ ååºå¤´æä»¶ <condition_variable>
- æ ååºå¤´æä»¶ <any>
- æ ååºå¤´æä»¶ <optional>
- æ ååºå¤´æä»¶ <variant>
- æ ååºå¤´æä»¶ <memory_resource>
- æ ååºå¤´æä»¶ <string_view>
- æ ååºå¤´æä»¶ <charconv>
- æ ååºå¤´æä»¶ <execution>
- æ ååºå¤´æä»¶ <filesystem>
- æ ååºå¤´æä»¶ <concepts>
- æ ååºå¤´æä»¶ <coroutine>
- æ ååºå¤´æä»¶ <compare>
- æ ååºå¤´æä»¶ <version>
- æ ååºå¤´æä»¶ <source_location>
- æ ååºå¤´æä»¶ <format>
- æ ååºå¤´æä»¶ <span>
- æ ååºå¤´æä»¶ <ranges>
- æ ååºå¤´æä»¶ <bit>
- æ ååºå¤´æä»¶ <numbers>
- æ ååºå¤´æä»¶ <syncstream>
- æ ååºå¤´æä»¶ <stop_token>
- æ ååºå¤´æä»¶ <semaphore>
- æ ååºå¤´æä»¶ <latch>
- æ ååºå¤´æä»¶ <barrier>
- æ ååºå¤´æä»¶ <string>
- æ ååºå¤´æä»¶ <cstddef>
- æ ååºå¤´æä»¶ <limits>
- æ ååºå¤´æä»¶ <cfloat>
- æ ååºå¤´æä»¶ <climits>
- æ ååºå¤´æä»¶ <cstdlib>
- æ ååºå¤´æä»¶ <new>
- æ ååºå¤´æä»¶ <typeinfo>
- æ ååºå¤´æä»¶ <exception>
- æ ååºå¤´æä»¶ <cstdarg>
- æ ååºå¤´æä»¶ <ciso646>
- æ ååºå¤´æä»¶ <cstdalign>
- æ ååºå¤´æä»¶ <cstdbool>
- æ ååºå¤´æä»¶ <fstream>
- æ ååºå¤´æä»¶ <cstdio>
- æ ååºå¤´æä»¶ <strstream>
- æ ååºå¤´æä»¶ <shared_mutex>
- æ ååºå¤´æä»¶ <ccomplex>
- æ ååºå¤´æä»¶ <ctgmath>
- 注é
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >C++ æ ååºå¤´æä»¶ > æ ååºå¤´æä»¶ <functional>
æ ååºå¤´æä»¶ <functional>
æ¤å¤´æä»¶æ¯å½æ°å¯¹è±¡åºçä¸é¨åå¹¶æä¾æ 忣å彿°ã
å½å空é´
| placeholders | å®ä¹äºç¨ä½ std::bind 表达å¼ä¸çæªç»å®å®åçå ä½ç¬¦ |
常é | |
| å®ä¹äºå½å空é´
std::placeholders | |
| (C++11) |
ç¨ä½ std::bind 表达å¼ä¸çæªç»å®å®åçå ä½ç¬¦ (常é) |
ç±»
| (C++11) |
å
è£
å
·ææå®å½æ°è°ç¨ç¾åçä»»æç±»åçå¯è°ç¨å¯¹è±¡ (类模æ¿) |
| (C++11) |
仿åæéå建åºå½æ°å¯¹è±¡ (彿°æ¨¡æ¿) |
| (C++11) |
è°ç¨ç©ºç std::function æ¶æåºçå¼å¸¸ (ç±») |
| (C++11) |
æç¤ºå¯¹è±¡ä¸º std::bind 表达å¼ï¼æè½è¢«ç¨ä½è¿ç§è¡¨è¾¾å¼ (类模æ¿) |
| (C++11) |
表æä¸ä¸ªå¯¹è±¡æ¯æ åå ä½ç¬¦ï¼æè
å¯ä»¥ç¨ä½æ åå ä½ç¬¦ (类模æ¿) |
| (C++11) |
å¯å¤å¶æé (CopyConstructible) ä¸å¯å¤å¶èµå¼ (CopyAssignable) çå¼ç¨å
è£
å¨ (类模æ¿) |
æ£å | |
| (C++11) |
æ£å彿°å¯¹è±¡ (类模æ¿) |
|
template<> struct hash<bool>; |
对å
建类åç std::hash ç¹å (类模æ¿ç¹å) |
彿°
| (C++11) |
ç»å®ä¸æå¤ä¸ªå®åå°å½æ°å¯¹è±¡ (彿°æ¨¡æ¿) |
| (C++11)(C++11) |
å建å
ᾊȌ
¶å®åæ¨å¯¼çç±»åç std::reference_wrapper (彿°æ¨¡æ¿) |
| (C++17) |
以ç»å®å®åè°ç¨ä»»æå¯è°ç¨ (Callable) 对象 (彿°æ¨¡æ¿) |
彿°å¯¹è±¡
ç®æ¯è¿ç® | |
| å®ç° x + y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x - y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x * y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x / y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x % y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° -x ç彿°å¯¹è±¡ (类模æ¿) | |
æ¯è¾ | |
| å®ç° x == y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x != y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x > y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x < y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x >= y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x <= y ç彿°å¯¹è±¡ (类模æ¿) | |
æ¦å¿µå¶çº¦çæ¯è¾ | |
| (C++20) |
å®ç° x == y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x != y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x > y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x < y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x >= y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x <= y ç彿°å¯¹è±¡ (ç±») |
é»è¾è¿ç® | |
| å®ç° x && y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x || y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° !x ç彿°å¯¹è±¡ (类模æ¿) | |
éä½è¿ç® | |
| å®ç° x & y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x | y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x ^ y ç彿°å¯¹è±¡ (类模æ¿) | |
| (C++14) |
å®ç° ~x ç彿°å¯¹è±¡ (类模æ¿) |
ååå¨ | |
| (C++17) |
å建è¿åå
¶ä¿æç彿°å¯¹è±¡çç»æä¹è¡¥ç彿°å¯¹è±¡ (彿°æ¨¡æ¿) |
æç´¢å¨ | |
| (C++17) |
æ å C++ åºæç´¢ç®æ³å®ç° (类模æ¿) |
| (C++17) |
Boyer-Moore æç´¢ç®æ³å®ç° (类模æ¿) |
| Boyer-Moore-Horspool æç´¢ç®æ³å®ç° (类模æ¿) | |
C++11 ä¸å¼ç¨å¹¶äº C++17 ç§»é¤
åºç±» | |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
ä¸éé
å¨å
¼å®¹çä¸å
彿°åºç±» (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
ä¸éé
å¨å
¼å®¹çäºå
彿°åºç±» (类模æ¿) |
ç»å®å¨ | |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
ææä¸ä¸ªäºå
彿°åå
¶å®åä¹ä¸ç彿°å¯¹è±¡ (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
å°ä¸ä¸ªå®åç»å®å°äºå
彿° (彿°æ¨¡æ¿) |
彿°éé å¨ | |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
éé
å¨å
¼å®¹çå
è£
ï¼ç¨äºå
è£
ä¸å
彿°çæé (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
éé
å¨å
¼å®¹çå
è£
ï¼ç¨äºå
è£
äºå
彿°çæé (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
ä»å½æ°æéå建ä¸éé
å¨å
¼å®¹ç彿°å¯¹è±¡å
è£
å¨ (彿°æ¨¡æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
æåé¶å
æä¸å
æå彿°æéçå
è£
å¨ï¼å¯ä»¥ä¸ä¸ªå¯¹è±¡æéè°ç¨ (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
仿å彿°æéå建å
è£
å¨ï¼å¯ä»¥ä¸ä¸ªå¯¹è±¡æéè°ç¨ (彿°æ¨¡æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
æåé¶å
æä¸å
æå彿°æéçå
è£
å¨ï¼å¯ä»¥ä¸ä¸ªå¯¹è±¡å¼ç¨è°ç¨ (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
仿å彿°æéå建å
è£
å¨ï¼è½ä»¥ä¸ä¸ªå¯¹è±¡å¼ç¨è°ç¨ (彿°æ¨¡æ¿) |
C++17 ä¸å¼ç¨å¹¶äº C++20 ç§»é¤
ååå¨ | |
| (C++17 ä¸å¼ç¨)(C++20 ä¸ç§»é¤) |
å
è£
å¨å½æ°å¯¹è±¡ï¼è¿åæææçä¸å
è°è¯çè¡¥ (类模æ¿) |
| (C++17 ä¸å¼ç¨)(C++20 ä¸ç§»é¤) |
å
è£
å¨å½æ°å¯¹è±¡ï¼è¿åæææçäºå
è°è¯çè¡¥ (类模æ¿) |
| (C++17 ä¸å¼ç¨)(C++20 ä¸ç§»é¤) |
æé å®å¶ç std::unary_negate 对象 (彿°æ¨¡æ¿) |
| (C++17 ä¸å¼ç¨)(C++20 ä¸ç§»é¤) |
æé å®å¶ç std::binary_negate 对象 (彿°æ¨¡æ¿) |
æ¦è¦
namespace std { // invoke template<class F, class... Args> constexpr invoke_result_t<F, Args...> invoke(F&& f, Args&&... args) noexcept(is_nothrow_invocable_v<F, Args...>);  // reference_wrapper template<class T> class reference_wrapper;  template<class T> constexpr reference_wrapper<T> ref(T&) noexcept; template<class T> constexpr reference_wrapper<const T> cref(const T&) noexcept; template<class T> void ref(const T&&) = delete; template<class T> void cref(const T&&) = delete;  template<class T> constexpr reference_wrapper<T> ref(reference_wrapper<T>) noexcept; template<class T> constexpr reference_wrapper<const T> cref(reference_wrapper<T>) noexcept;  template<class T> struct unwrap_reference; template<class T> using unwrap_reference_t = typename unwrap_reference<T>::type; template<class T> struct unwrap_ref_decay; template<class T> using unwrap_ref_decay_t = typename unwrap_ref_decay<T>::type;  // ç®æ¯è¿ç® template<class T = void> struct plus; template<class T = void> struct minus; template<class T = void> struct multiplies; template<class T = void> struct divides; template<class T = void> struct modulus; template<class T = void> struct negate; template<> struct plus<void>; template<> struct minus<void>; template<> struct multiplies<void>; template<> struct divides<void>; template<> struct modulus<void>; template<> struct negate<void>;  // æ¯è¾ template<class T = void> struct equal_to; template<class T = void> struct not_equal_to; template<class T = void> struct greater; template<class T = void> struct less; template<class T = void> struct greater_equal; template<class T = void> struct less_equal; template<> struct equal_to<void>; template<> struct not_equal_to<void>; template<> struct greater<void>; template<> struct less<void>; template<> struct greater_equal<void>; template<> struct less_equal<void>;  // é»è¾è¿ç® template<class T = void> struct logical_and; template<class T = void> struct logical_or; template<class T = void> struct logical_not; template<> struct logical_and<void>; template<> struct logical_or<void>; template<> struct logical_not<void>;  // éä½è¿ç® template<class T = void> struct bit_and; template<class T = void> struct bit_or; template<class T = void> struct bit_xor; template<class T = void> struct bit_not; template<> struct bit_and<void>; template<> struct bit_or<void>; template<> struct bit_xor<void>; template<> struct bit_not<void>;  // identity struct identity;  // 彿°æ¨¡æ¿ not_fn template<class F> constexpr /* æªææ */ not_fn(F&& f);  // 彿°æ¨¡æ¿ bind_front template<class F, class... Args> constexpr /* æªææ */ bind_front(F&&, Args&&...);  // bind template<class T> struct is_bind_expression; template<class T> struct is_placeholder;  template<class F, class... BoundArgs> constexpr /* æªææ */ bind(F&&, BoundArgs&&...); template<class R, class F, class... BoundArgs> constexpr /* æªææ */ bind(F&&, BoundArgs&&...);  namespace placeholders { // M æ¯å®ç°å®ä¹çå ä½ç¬¦æ° /* è§æè¿° */ _1; /* è§æè¿° */ _2; . . . /* è§æè¿° */ _M; }  // æå彿°éé å¨ template<class R, class T> constexpr /* æªææ */ mem_fn(R T::*) noexcept;  // 夿彿°å è£ class bad_function_call;  template<class> class function; // not defined template<class R, class... ArgTypes> class function<R(ArgTypes...)>;  template<class R, class... ArgTypes> void swap(function<R(ArgTypes...)>&, function<R(ArgTypes...)>&) noexcept;  template<class R, class... ArgTypes> bool operator==(const function<R(ArgTypes...)>&, nullptr_t) noexcept;  // æç´¢å¨ template<class ForwardIter, class BinaryPredicate = equal_to<>> class default_searcher;  template<class RandomAccessIter, class Hash = hash<typename iterator_traits<RandomAccessIter>::value_type>, class BinaryPredicate = equal_to<>> class boyer_moore_searcher;  template<class RandomAccessIter, class Hash = hash<typename iterator_traits<RandomAccessIter>::value_type>, class BinaryPredicate = equal_to<>> class boyer_moore_horspool_searcher;  // æ£å彿°åçæ¨¡æ¿ template<class T> struct hash;  // 彿°å¯¹è±¡ç»å®å¨ template<class T> inline constexpr bool is_bind_expression_v = is_bind_expression<T>::value; template<class T> inline constexpr int is_placeholder_v = is_placeholder<T>::value;  namespace ranges { // æ¦å¿µå¶çº¦çæ¯è¾ struct equal_to; struct not_equal_to; struct greater; struct less; struct greater_equal; struct less_equal; } }
ç±»æ¨¡æ¿ std::reference_wrapper
namespace std { template<class T> class reference_wrapper { public: // ç±»å using type = T;  // æé /å¤å¶/ææ template<class U> constexpr reference_wrapper(U&&) noexcept(see below); constexpr reference_wrapper(const reference_wrapper& x) noexcept;  // èµå¼ constexpr reference_wrapper& operator=(const reference_wrapper& x) noexcept;  // è®¿é® constexpr operator T& () const noexcept; constexpr T& get() const noexcept;  // è°ç¨ template<class... ArgTypes> constexpr invoke_result_t<T&, ArgTypes...> operator()(ArgTypes&&...) const; }; template<class T> reference_wrapper(T&) -> reference_wrapper<T>; }
ç±»æ¨¡æ¿ std::unwrap_reference
namespace std { template<class T> struct unwrap_reference; }
ç±»æ¨¡æ¿ std::unwrap_ref_decay
namespace std { template<class T> struct unwrap_ref_decay; }
ç±»æ¨¡æ¿ std::plus
namespace std { template<class T = void> struct plus { constexpr T operator()(const T& x, const T& y) const; };  template<> struct plus<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) + std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::minus
namespace std { template<class T = void> struct minus { constexpr T operator()(const T& x, const T& y) const; };  template<> struct minus<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) - std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::multiplies
namespace std { template<class T = void> struct multiplies { constexpr T operator()(const T& x, const T& y) const; };  template<> struct multiplies<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) * std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::divides
namespace std { template<class T = void> struct divides { constexpr T operator()(const T& x, const T& y) const; };  template<> struct divides<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) / std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::modulus
namespace std { template<class T = void> struct modulus { constexpr T operator()(const T& x, const T& y) const; };  template<> struct modulus<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) % std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::negate
namespace std { template<class T = void> struct negate { constexpr T operator()(const T& x) const; };  template<> struct negate<void> { template<class T> constexpr auto operator()(T&& t) const -> decltype(-std::forward<T>(t));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::equal_to
namespace std { template<class T = void> struct equal_to { constexpr bool operator()(const T& x, const T& y) const; };  template<> struct equal_to<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) == std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::not_equal_to
namespace std { template<class T = void> struct not_equal_to { constexpr bool operator()(const T& x, const T& y) const; };  template<> struct not_equal_to<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) != std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::greater
namespace std { template<class T = void> struct greater { constexpr bool operator()(const T& x, const T& y) const; };  template<> struct greater<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) > std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::less
namespace std { template<class T = void> struct less { constexpr bool operator()(const T& x, const T& y) const; };  template<> struct less<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) < std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::greater_equal
namespace std { template<class T = void> struct greater_equal { constexpr bool operator()(const T& x, const T& y) const; };  template<> struct greater_equal<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) >= std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::less_equal
namespace std { template<class T = void> struct less_equal { constexpr bool operator()(const T& x, const T& y) const; };  template<> struct less_equal<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) <= std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±» std::ranges::equal_to
namespace std::ranges { struct equal_to { template<class T, class U> requires equality_comparable_with<T, U> || /*BUILTIN-PTR-CMP*/(T, ==, U) constexpr bool operator()(T&& t, U&& u) const;  using is_transparent = /* æªææ */; }; }
ç±» std::ranges::not_equal_to
namespace std::ranges { struct not_equal_to { template<class T, class U> requires equality_comparable_with<T, U> || /*BUILTIN-PTR-CMP*/(T, ==, U) constexpr bool operator()(T&& t, U&& u) const;  using is_transparent = /* æªææ */; }; }
ç±» std::ranges::greater
namespace std::ranges { struct greater { template<class T, class U> requires totally_ordered_with<T, U> || /*BUILTIN-PTR-CMP*/(U, <, T) constexpr bool operator()(T&& t, U&& u) const;  using is_transparent = /* æªææ */; }; }
ç±» std::ranges::less
namespace std::ranges { struct less { template<class T, class U> requires totally_ordered_with<T, U> || /*BUILTIN-PTR-CMP*/(T, <, U) constexpr bool operator()(T&& t, U&& u) const;  using is_transparent = /* æªææ */; }; }
ç±» std::ranges::greater_equal
namespace std::ranges { struct greater_equal { template<class T, class U> requires totally_ordered_with<T, U> || /*BUILTIN-PTR-CMP*/(T, <, U) constexpr bool operator()(T&& t, U&& u) const;  using is_transparent = /* æªææ */; }; }
ç±» std::ranges::less_equal
namespace std::ranges { struct less_equal { template<class T, class U> requires totally_ordered_with<T, U> || /*BUILTIN-PTR-CMP*/(U, <, T) constexpr bool operator()(T&& t, U&& u) const;  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::logical_and
namespace std { template<class T = void> struct logical_and { constexpr bool operator()(const T& x, const T& y) const; };  template<> struct logical_and<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) && std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::logical_or
namespace std { template<class T = void> struct logical_or { constexpr bool operator()(const T& x, const T& y) const; };  template<> struct logical_or<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) || std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::logical_not
namespace std { template<class T = void> struct logical_not { constexpr bool operator()(const T& x) const; };  template<> struct logical_not<void> { template<class T> constexpr auto operator()(T&& t) const -> decltype(!std::forward<T>(t));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::bit_and
namespace std { template<class T = void> struct bit_and { constexpr T operator()(const T& x, const T& y) const; };  template<> struct bit_and<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) & std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::bit_or
namespace std { template<class T = void> struct bit_or { constexpr T operator()(const T& x, const T& y) const; };  template<> struct bit_or<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) | std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::bit_xor
namespace std { template<class T = void> struct bit_xor { constexpr T operator()(const T& x, const T& y) const; };  template<> struct bit_xor<void> { template<class T, class U> constexpr auto operator()(T&& t, U&& u) const -> decltype(std::forward<T>(t) ^ std::forward<U>(u));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::bit_not
namespace std { template<class T = void> struct bit_not { constexpr T operator()(const T& x) const; };  template<> struct bit_not<void> { template<class T> constexpr auto operator()(T&& t) const -> decltype(~std::forward<T>(t));  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::identity
namespace std { struct identity { template<class T> constexpr T&& operator()(T&& t) const noexcept;  using is_transparent = /* æªææ */; }; }
ç±»æ¨¡æ¿ std::is_bind_expression
namespace std { template<class T> struct is_bind_expression; }
ç±»æ¨¡æ¿ std::is_placeholder
namespace std { template<class T> struct is_placeholder; }
ç±» std::bad_function_call
namespace std { class bad_function_call : public exception { public: // ç¹æ®æå彿°çè§å®è§ [exception] const char* what() const noexcept override; }; }
ç±» std::function
namespace std { template<class> class function; // ä¸å®ä¹  template<class R, class... ArgTypes> class function<R(ArgTypes...)> { public: using result_type = R;  // æé /å¤å¶/鿝 function() noexcept; function(nullptr_t) noexcept; function(const function&); function(function&&) noexcept; template<class F> function(F);  function& operator=(const function&); function& operator=(function&&); function& operator=(nullptr_t) noexcept; template<class F> function& operator=(F&&); template<class F> function& operator=(reference_wrapper<F>) noexcept;  ~function();  // function ä¿®æ¹å¨ void swap(function&) noexcept;  // function 容é explicit operator bool() const noexcept;  // function è°ç¨ R operator()(ArgTypes...) const;  // function ç®æ è®¿é® const type_info& target_type() const noexcept; template<class T> T* target() noexcept; template<class T> const T* target() const noexcept; };  template<class R, class... ArgTypes> function(R(*)(ArgTypes...)) -> function<R(ArgTypes...)>;  template<class F> function(F) -> function</* see description */>;  // 空æéæ¯è¾å½æ° template<class R, class... ArgTypes> bool operator==(const function<R(ArgTypes...)>&, nullptr_t) noexcept;  // ç¹åçç®æ³ template<class R, class... ArgTypes> void swap(function<R(ArgTypes...)>&, function<R(ArgTypes...)>&) noexcept; }
ç±»æ¨¡æ¿ std::default_searcher
namespace std { template<class ForwardIter1, class BinaryPredicate = equal_to<>> class default_searcher { public: constexpr default_searcher(ForwardIter1 pat_first, ForwardIter1 pat_last, BinaryPredicate pred = BinaryPredicate());  template<class ForwardIter2> constexpr pair<ForwardIter2, ForwardIter2> operator()(ForwardIter2 first, ForwardIter2 last) const;  private: ForwardIter1 pat_first_; // ä» ä¸ºéé ForwardIter1 pat_last_; // ä» ä¸ºéé BinaryPredicate pred_; // ä» ä¸ºéé }; }
ç±»æ¨¡æ¿ std::boyer_moore_searcher
namespace std { template<class RandomAccessIter1, class Hash = hash<typename iterator_traits<RandomAccessIter1>::value_type>, class BinaryPredicate = equal_to<>> class boyer_moore_searcher { public: boyer_moore_searcher(RandomAccessIter1 pat_first, RandomAccessIter1 pat_last, Hash hf = Hash(), BinaryPredicate pred = BinaryPredicate());  template<class RandomAccessIter2> pair<RandomAccessIter2, RandomAccessIter2> operator()(RandomAccessIter2 first, RandomAccessIter2 last) const;  private: RandomAccessIter1 pat_first_; // ä» ä¸ºéé RandomAccessIter1 pat_last_; // ä» ä¸ºéé Hash hash_; // ä» ä¸ºéé BinaryPredicate pred_; // ä» ä¸ºéé }; }
ç±»æ¨¡æ¿ std::boyer_moore_horspool_searcher
namespace std { template<class RandomAccessIter1, class Hash = hash<typename iterator_traits<RandomAccessIter1>::value_type>, class BinaryPredicate = equal_to<>> class boyer_moore_horspool_searcher { public: boyer_moore_horspool_searcher(RandomAccessIter1 pat_first, RandomAccessIter1 pat_last, Hash hf = Hash(), BinaryPredicate pred = BinaryPredicate());  template<class RandomAccessIter2> pair<RandomAccessIter2, RandomAccessIter2> operator()(RandomAccessIter2 first, RandomAccessIter2 last) const;  private: RandomAccessIter1 pat_first_; // ä» ä¸ºéé RandomAccessIter1 pat_last_; // ä» ä¸ºéé Hash hash_; // ä» ä¸ºéé BinaryPredicate pred_; // ä» ä¸ºéé }; }
åé
| <string> | é对 std::stringãstd::u16stringãstd::u32stringãstd::wstring ç¹å std::hash |
| <system_error> | é对 std::error_code ç¹å std::hash |
| <bitset> | é对 std::bitset ç¹å std::hash |
| <memory> | é对 std::unique_ptrãstd::shared_ptr ç¹å std::hash |
| <typeindex> | é对 std::type_index ç¹å std::hash |
| <vector> | é对 std::vector<bool> ç¹å std::hash |
| <thread> | é对 std::thread::id ç¹å std::hash |