-
Notifications
You must be signed in to change notification settings - Fork 160
cpp14
E Kawashima edited this page Mar 26, 2017
·
218 revisions
本Webサイトが提供する、ライブラリリファレンスの、C++14への対応状況です。
以下のページを参考に、対応状況の表を作りました。
提案文書 | 説明 | 対応状況(空 or 完了 or 対応しない) |
---|---|---|
N3421 | 比較関数オブジェクトのジェネリック化 | 完了 |
N3462 |
result_of をSFINAEフレンドリーに |
完了 |
N3469 |
chrono のconstexpr 対応 |
完了 |
N3470 |
array のconstexpr 対応 |
完了 |
N3471 | ユーティリティのconstexpr 対応(ムーブ関係、pair 、tuple 、initializer_list が対象) |
完了 |
N3302 |
complex のconstexpr 対応 |
完了 |
N3545 |
integral_constant を改善し、関数呼び出し演算子を追加 |
完了 |
N3644 | Null Forward Iterators | 対応しない 現状、イテレータの要件を書く場所がない |
N3668 | std::exchange() |
完了 |
N3658 | コンパイル時の整数シーケンス | 完了 |
N3670 | 型を指定して、タプルの要素を取得する | 完了 |
N3671 | 2つのシーケンス範囲を扱うアルゴリズムに、last2 を受け取るオーバーロードを追加 |
完了 |
N3656 | make_unique |
完了 |
N3654 | 文字列のクォート修飾 | 完了 |
N3642 |
basic_string とduration のリテラル |
完了 |
N3655 | Type Traitsのエイリアステンプレート版を追加 (part 4以外) | 完了 |
N3657 | 連想コンテナに、異種混合の比較を追加する | 完了 |
N3669 |
constexpr メンバ関数にconst 修飾を付けられるようになったので、 標準ライブラリに適用 |
完了 |
N3659 | 共有ロック機能として、<shared_mutex> ヘッダを追加 |
完了 |
N3779 |
std::complex のユーザー定義リテラル |
完了 |
N3789 |
<functional> ライブラリにconstexpr を追加 |
完了 |
N3778 | サイズ付きのデアロケート | 完了 |
N3924 |
rand() の非推奨化 |
完了 |
N3887 |
tuple_element のエイリアステンプレート対応 |
完了 |
N3891 |
shared_mutex クラスをshared_timed_mutex に改名 |
完了 |
LWG DR | 説明 | 対応状況(空 or 完了 or 対応しない) |
---|---|---|
1214 | キーの不変性に関する連想コンテナの要件が 不足している & 一貫していない |
対応しない 文面整理のため、こちらのサイトに影響がない |
2009 | 数値-文字列間の変換での、範囲外の値が発生した エラー報告に、 ERANGE を考慮する |
完了 |
2010 |
is_bind_expression とis_placeholder が特殊化できないように読める |
完了 |
2015 | いくつかの型特性の要件が間違っている | 完了 |
2021 |
result_of の使い方が間違っている |
完了 bind側はとくに対応していない |
2028 | messages_base::catalog overspecified | |
2033 |
reserve() 、shrink_to_fit() 、resize() メンバ関数の事前条件 |
完了 |
2039 |
std::reverse の効果が間違っている。std::copy_if に戻り値の仕様がない。 |
完了 |
2044 | copy関係のアルゴリズムについて、 「Stable」の定義がない |
対応しない |
2045 |
forward_list のmerge() とsplice_after() に、アロケータが等価であることの要件を追加 |
完了 |
2047 |
unique_ptr のムーブ代入演算子の、効果が間違っている |
完了 |
2050 | 非順序連想コンテナがデータメンバ型の定義にallocator_traits を使用していない |
完了 |
2053 |
regex_constants のビットマスク定数に、不要な static が付いている |
完了 |
2061 |
make_move_iterator() 関数に配列を渡すと、ポインタに推論されない問題 |
完了 |
2064 |
basic_string のnoexcept 仕様に問題あり |
完了 |
2065 | アロケータインタフェースの最小要件 | 対応しない 現状、アロケータの要件を書く場所がない |
2067 |
packaged_task とbasic_ostream のコピー不可指定が間違っている |
packaged_task は完了 |
2069 |
basic_string のムーブコンストラクタについて、例外の仕様が不整合を起こしている |
完了 |
2096 |
future::get の制約が不正 |
完了 |
2102 |
std::launch が「実装定義のビットマスク型」という仕様になっているが、実装定義である必要はない |
完了 |
2071 |
std::valarray のムーブ代入について、計算量が定数時間と記載していたが、線形時間の間違い |
完了 |
2074 |
std::reverse_copy の効果が間違っている |
完了 |
2081 |
Allocator 要件は、CopyConstructible 要件をincludeすべき |
対応しない 現状、アロケータの要件を書く場所がない |
2083 |
weak_ptr::owner_before() のconst 修飾 |
対応しない(ぎりぎりC++11から) |
2086 | Overly generic type support for math functions | 完了 ヘッダページに記載 |
2099 |
va_start() の用途に、不要な制約がある |
対応しない C互換ライブラリの対応は任意 |
2103 |
propagate_on_container_move_assignment をデフォルトで true に |
完了 |
2105 |
const_iterator のvalue_type に、不要な要件。 |
対応しない 現状、イテレータの要件を書く場所がない |
2110 |
remove とremove_if は、アルゴリズムの要件に反するswap操作はできない |
完了 |
2123 |
forward_list::merge() のアロケータ要件を満たさなかった場合の挙動を、 list に合わせて記載 |
完了 |
2005 |
unordered_map::insert(T&&) の効果を、map と同様に簡易化 |
完了 |
2011 | Unexpected output required of strings | |
2048 |
mem_fn の不要なオーバーロードを削除 |
完了 |
2049 |
is_destructible の仕様が不十分 |
完了 |
2056 |
future_errc の列挙値が0から始まってしまっている |
完了 |
2058 |
valarray のイテレータが無効になる条件 |
完了 |
2091 |
m.try_lock_for() の要件に、効果が書いていた |
完了 |
2092 |
condition_variable_any のエラー文言があいまい |
完了 |
2093 | wait系関数の「例外」節を見直し | 完了 |
2094 |
duration の変換コンストラクタのオーバーロード解決条件に、オーバーフローしないことを追加 |
完了 |
2122 |
list とforward_list におけるmerge() の安定性 |
完了 安定の定義については未対応 |
2128 | イテレータを取得する非メンバ関数として、cbegin /cend , rbegin /rend , crbegin /crend を追加 |
完了 |
2145 |
error_category クラスのデフォルトコンストラクタが定義されていない |
完了 |
2147 | Unclear hint type in Allocator's allocate function | |
2148 |
std::hash でenum を直接サポートするべき |
完了 |
2149 | 関数オブジェクトに、argument_type とresult_type を要求していたが、持っていないものも多いため、要件から外した |
対応しない |
2162 |
allocator_traits::max_size() にnoexcept が付いていない |
完了 |
2163 |
nth_element の事後状態に、operator> ではなくoperator< を使用する |
完了 |
2169 |
unique_ptr::reset() のnullptr_t バージョンに、効果が記載されていない |
完了 |
2172 |
shared_ptr のatomic_compare_exchange_* 関数に、ヌルポインタを受け付けない要件が漏れている |
完了 |
2080 |
once_flag は無効にならない |
完了 |
2098 |
promise::set_value() 、set_value_at_thread_exit() の例外節を見直し |
完了 |
2109 |
hash 特殊化の要件が間違っている |
対応しない 元々、要件については特に書いていなかった |
2130 | missing ordering constraints for fences | |
2138 |
atomic_flag::clear の制限として、consume メモリオーダーを受け付けないようにする |
完了 |
2140 | notify_all_at_thread_exit synchronization | |
2144 |
type_index の仕様にnoexcept が抜けている |
完了 |
2174 |
wstring_convert::converted() はnoexcept にすべき |
完了 |
2175 |
wstring_convert とwbuffer_convert のコンストラクタ要件 |
wstring_convert は完了 |
2176 |
wstring_convert とwbuffer_convert の特殊メンバ関数 |
wstring_convert は完了 |
2177 | Requirements on Copy/MoveInsertable | |
2185 |
future とshared_future のwait_for /wait_until に、例外仕様が漏れている |
完了 |
2187 |
vector<bool> にemplace とemplace_back が追加されていない |
完了 |
2190 | ordering of condition variable operations, reflects Posix discussion | |
2196 |
is_*[copy/move]_[constructible/assignable] の非参照型に対する振る舞いを明確化 |
完了 |
2197 |
is_[un]signed の算術型以外が渡された場合の仕様が明確でない |
完了 |
2200 | Container requirementsの「データ競合の回避」のところに 「シーケンスコンテナ」と書いてあるが、正しい対象は全てのコンテナ |
対応しない cpprefjpに影響なし |
2203 | scoped_allocator_adaptor uses wrong argument types for piecewise construction | |
2207 |
basic_string::at には要件節が必要ない |
完了 |
2209 | assign() overspecified for sequence containers | |
2210 | コンテナに、アロケータを伝搬させるコンストラクタが不足している | 完了 |
2211 | Replace ambiguous use of "Allocator" in container requirements | |
2222 |
forward_list の単一要素版splice_after() について、ポインタと参照の有効性を説明する対象が間違っている |
完了 |
2225 | ヘッダのインクルードチェックに関する要件が現実的ではない | 対応しない |
2229 | Standard code conversion facets underspecified | |
2231 | DR 704で削除された、シーケンスコンテナのclear() メンバ関数の計算量保証を再度入れる |
完了 |
2235 |
basic_string のコンストラクタに、適切な要件を設定して未定義動作をなくす |
完了 |
2141 |
common_type は参照型を返すべきではない |
完了 |
2246 |
unique_ptr のデリータを代入する文言が曖昧 |
完了 |
2247 |
is_null_pointer 型特性を追加 |
完了 |
2085 | Wrong description of effect 1 of basic_istream::ignore | |
2087 |
iostream_category() とnoexcept
|
完了 |
2143 |
ios_base::xalloc はスレッドセーフにすべき |
完了 |
2150 |
find_end の仕様が明確でない |
対応しない cpprefjpの解説には影響がなかった |
2180 |
std::seed_seq オブジェクトの操作から投げられる例外 |
完了 |
2194 | コンテナアダプタが「シーケンスコンテナの要件を満たす」とあるが、そんなことはないので間違い | 対応しない cpprefjpに影響なし |
2013 | Do library implementers have the freedom to add constexpr? | |
2018 |
regex_traits::isctype の戻り値節がおかしい |
完了 |
2078 |
async() の例外節が不完全 |
対応しない 意味はとくに変わっていない |
2097 |
thread とpackaged_task の関数テンプレート版コンストラクタに制約を設けるべき |
完了 |
2100 | Timed waiting functions cannot timeout if launch::async policy used | 対応しない 現状、同期節を取り扱っていない |
2120 |
async() 関数にasync とdeferred 以外のポリシーが設定されていたら、どういう挙動をすべきか |
完了 |
2159 |
atomic_flag の初期化 |
完了 |
2275 |
forward_as_tuple() がconstexpr になっていない |
完了 |
2284 |
allocator_traits::max_size のパラメータにconst が付いていない |
完了 |
2298 |
add_rvalue_reference のコード例に、noexcept を追加std::declval() と同じ定義であるため |
対応しない |
2300 |
map とmultimap のメンバ関数の節を削減 |
対応しない 規格書の書き方整理 |
NB comment: GB9 Remove gets from C++14 | ||
2135 |
condition_variable::wait() の例外送出する仕様が明確でない |
完了 |
2291 |
std::hash が衝突DoS攻撃に対して脆弱である |
完了 |
2142 | packaged_task::operator() synchronization too broad? | |
2240 | Probable misuse of term "function scope" in [thread.condition] | |
2252 |
vector とdeque の挿入操作において、例外に対する保証が強すぎる |
完了 |
2257 | コンテナの等値比較を、新たなアルゴリズムを使ってシンプルにする | 完了 非順序連想コンテナは非対応。 |
2268 |
std::basic_string のappend , assign ,insert , replace , compare に、デフォルト引数を追加 |
完了 |
2271 | regex_traits::lookup_classname specification unclear | |
2272 |
quoted は文字の比較にchar_traits::eq を使用すべき |
完了 |
2278 |
duration のリテラルを、std::chrono 名前空間でも使用できるようにする |
完了 |
2280 | 組み込み配列版のbegin() とend() はconstexpr とnoexcept を付けるべき |
完了 |
2285 |
make_reverse_iterator() 関数を追加 |
完了 |
2299 |
key_compare::is_transparent 型へのアクセスについての効果が明確ではない |
完了 |
1450 |
regex_constants の矛盾 |
対応しない cpprefjpには、とくに影響がなかった |
2003 |
basic_string::erase の、例外仕様が矛盾している |
完了 |
2112 | 派生できないユーザー定義クラスの判定用に、is_final を追加 |
完了 |
2132 |
std::function に、シグニチャが異なる関数オブジェクトが渡された場合の挙動があいまい |
完了 |
2182 | Container::[const_]reference types are misleadingly specified | |
2188 |
reverse_iterator を、operator& のオーバーロードに対応する |
完了 |
2193 | コンテナのデフォルトコンストラクタを非explicitにする | 完了 |
2205 |
regex_match /regex_search の事後条件の表の表記は問題がある |
完了 |
2213 |
regex_replace の戻り値は引数のコピーではない |
完了 |
2258 | 順序付き連想コンテナのa.erase(q1, q2) が、q2 を直接返せない場合がある |
完了 |
2263 | Comparing iterators and allocator pointers with different const-character | |
2293 | Wrong facet used by num_put::do_put | |
2301 |
std::tie() がconstexpr になっていない |
完了 |
2304 | 非順序連想コンテナのcount() メンバ関数について、計算量が間違っている |
完了 |
2306 |
match_results::reference がconst value_type& になっているが、value_type& が正しい |
完了 |
2308 | コンテナのデストラクタの要件を、 動的メモリ確保しない std::array を考慮したものにする |
対応しない |
2313 |
tuple_size は常にintegral_constant から派生すべき |
完了 |
2314 |
apply() はdecltype(auto) を返し、tuple_size の前にdecay_t を使うべき |
対応しない 規格書中のサンプルコードの問題 |
2315 |
weak_ptr をムーブ可能にすべき |
完了 |
2316 |
weak_ptr::lock() をアトミックに |
完了 |
2317 | 型のクエリに関する特性クラスは、size_t を返すUnaryTypeTraits であるべき |
対応しない |
2320 |
select_on_container_copy_construction() によって返されるアロケータオブジェクトを、コンテナのコピーコンストラクタの第1パラメータに使用する、 と書かれていたが、アロケータのパラメータ位置は任意なので間違い |
対応しない |
2322 |
Associative(initializer_list, stuff) のコンストラクタ仕様が不十分 |
完了 |
2323 |
vector::resize(n, t) とdeque::resize(n, t) の仕様を簡易化すべし |
完了 |
2324 | 挿入イテレータのコンストラクタは、ポインタ取得にaddressof() 関数を使用すべき |
完了 |
2329 |
match_results を伴う regex_match() /regex_search() は一時string オブジェクトを禁止すべし |
完了 |
2330 |
regex("meow", regex::icase) のような文法指定が無いものは禁止されてるが、許可すべきだ |
完了 |
2332 |
regex_iterator とregex_token_iterator は、一時regex オブジェクトを禁止すべし |
完了 |
2339 | Wording issue in nth_element | |
2341 | Inconsistency between basic_ostream::seekp(pos) and basic_ostream::seekp(off, dir) | |
2344 |
quoted() が、パディングとの相互作用について不明確 |
完了 |
2346 |
integral_constant のメンバ関数に、noexcept 指定を付けるべき |
完了 |
2350 |
min 、max 、minmax のconstexpr 化 |
完了 |
2356 | Stability of erasure in unordered associative containers | |
2357 | Remaining "Assignable" requirement | |
2359 |
regex_constants::nosubs は basic_regex::mark_count() にどのような影響を与えるのか? |
|
2360 |
reverse_iterator の間接参照演算子が、データ競合を考慮していない |
完了 |
2104 |
unique_lock のムーブ代入演算子からnoexcept を外すべき |
完了 |
2186 | Incomplete action on async/launch::deferred | |
2075 | 進行保証、ロックフリーのプロパティ、仮定のスケジューリング | 対応なし(ロックフリーという言葉の定義を追加) |
2288 | shared mutexの要件に不整合 | 完了 |
2396 |
underlying_type に完全型であることの要件が明記された |
完了 |