我從官方收集與組織了這些資訊,沒有任何我個人的主觀評論。如果你想知道這次會議的主要内容,請閱讀下面的内容(我已經知道了絕大多數關于c++17庫的内容,但是要将其全部寫出來還是需要一定的時間)

<a></a>
p0001r1 棄用<code>register</code>關鍵字
p0002r1 <code>bool</code>類型不再支援<code>++</code>運算符
p0012r1 異常成為類型系統的一部分,第五版
p0061r1 支援<code>__has_include</code>
p0134r0 引入非靜态成員變量的拷貝構造函數//not sure
p0136r1 重寫繼承構造器(core issue 1941 et al)
p0160r0 删除一進制運算符的預設值//wording for removing defaults for unary folds
p0004r1 棄用過時的<code>iostreams</code>的别名
p0006r0 采用基于标準庫規範的類型特征變量模闆
p0092r1 優化
p0007r1 constant view:一個::as_const 的輔助函數模闆
p0156r0 可變的lock_guard (rev. 3)
p0074r0 使std::owner_less更加靈活
p0013r1 邏輯運算符類型特征 (revision 1)
n4531 替換std::rand,版本三
p0013r1 邏輯運算符類型特征 (revision 1)[c++17投票通過]
這些檔案将會應用于n4529草案,然後進行拟議草案技術規範的投票。
p0159r0 将會作為并發技術規範釋出,屆時可能稍作改動。
n4505草案和p0155r0的”task block r5”負責這項工作。
p0112r1草案負責這想工作。
p0021r0草案負責這項工作。
1274.常見的非終結符表達式和内嵌初始化清單
1391.非推導模闆參數到參數類型的轉化
1722.lambda函數指針轉換函數應該不例外嗎?
1847.部分排序時聲明一緻性
1863.抛出對象的類型應該支援std::current_exception()
1949.”sequenced after”代替”sequenced before”
1975.允許聲明異常類型
1981.隐式和顯式的上下文轉換
1990.decl-specifier-seq造成的歧義
2000.<code>#include</code>之外的頭檔案名稱
2004.常量表達式中有可變成員的變量
2006.cv-qualified的void類型
2015.虛函數的odr-use
2016.類型轉換函數的描述中可能存在的歧義
2019.存儲時間描述中成員引用的省略
2024.依賴類型和未解包的參數包
2026.zero-initialization和constexpr
2027.指定多個alignas的需求不明
2031.<code>&&</code>的不相容
2052.模闆參數推導vs重載操作符
2075.傳遞短初始化清單給數組引用參數
2101.對類型和值的依賴的錯誤說明
2120.數組作為标準布局類的第一個非靜态成員變量
1169.<code>num_get</code>不能和strto*完全相容
2072.緩沖區容量定義不明确
2101.一些類型轉換可能産生非預期的類型
2111.處理異常時可能調用那些已經删除的句柄?
2119.擴充int類型缺少哈希函數
2127.帶raw_storage_iterator的move-construction
2133.重載逗号疊代器
2156.無序容器的reserve(n)儲存的是n-1個元素
2218.容器如何使用allocator_traits::construct()不夠明确
2219.invoke-ing一個帶有reference_wrapper的指針作為對象表達式
2224.不活躍對象的狀态問題
2234.assert()應該允許在常亮表達式中使用
2244.關于basic_istream::seekg的issue
2250.library issue 2207中的follow-up
2259.17.6.5.5規則中有關成員函數的問題
2273.regex_match的歧義
2336.is_trivially_constructible/is_trivially_assignable結果永遠是false
2353.std::next限制過度
2367.pair和tuple無參數時不相容is_constructible
2380.<code><cstdlib></code>應該提供long ::abs(long) 和long long ::abs(long long)嗎?
2384.配置設定器的解除函數需要更好的規範
2385.function::assign配置設定器參數無意義
2435.reference_wrapper::operator()的标記應該是被删除
2447.配置設定器和volatile-qualified值類型
2462.<code>std::ios_base::failure</code> 被過度規範
2466.<code>allocator_traits::max_size()</code>預設表現是錯誤的
2469.map的[]操作符和unordered_map規則錯誤
2473.<code>basic_filebuf</code>對c檔案的相容
2476.<code>scoped_allocator_adaptor</code>是不可配置設定的
2477.<code>std::vector::erase()</code>和<code>std::deque::erase()</code>的不一緻
2483.<code>throw_with_nested()</code>應該使用is_final
2484.<code>rethrow_if_nested()</code>是不可實作的
2485.常量tuple&&應該重載get()
2486.<code>mem_fn()</code>應該提供向前相容
2487.<code>bind()</code>不應該是cv-overloaded, 而應該是const-overloaded
2489.<code>mem_fn()</code>應該是noexcept的
2492.明确comp的需求
2495.沒有類似異常安全元素的東西
2494.[fund.ts.v2] ostream_joiner應該是noexcept的
2500.[fund.ts.v2] fundts.memory.smartptr.shared.obs/6 應該适用于cv-unqualified void
2515.[fund.ts.v2]observer_ptr的确定操作符不能比對任何簡介
2517.[fund.ts.v2] 兩個propagate_const assignment 操作符傳回不正确的類型
2526.[fund.ts]experimental::function::swap 條件不正确
以上隻是投票通過的部分記錄。每次的會議都會涉及很多工作,不會全都反映在檔案上,比如,有關modules的熱烈讨論檔案中就沒有。雖然我幾乎花了所有的時間在庫工作組中,但是還是不能跟進所有的内容。最終版檔案我會在reddit分享各個子產品的進展。
本文作者可以回答大多數有關庫的問題,但是可能回複略有延遲。可以确定的是,庫的可用性提高了。看起來一切都像小貓一樣溫順可愛,但是如果你去看一眼重載集合,就會發現這些模棱兩可的東西簡直是災難。lwg2451是作為标準庫定義的一個極好的例子,<code>optional<string> opt_str = "meow";</code>現在還未實作。對于基本規範沒有什麼問題,但是<code>optional</code>的ship-stopper不符合國際标準。在這次會議上,lwg意識到一些issue影響到了<code>variant</code>,問題會牽扯到基本規範。當然了,會議會解決這些問題,你不必經曆這些痛苦。
本文來自雲栖社群合作夥伴“linux中國”,原文發表于2013-04-02.