思いついたのをざっと列挙。
【タプルリテラル】
Uniform Initialization使えばできるけど、{1, 2}じゃなくて(1, 2)と書きたい
【Boost.uBLAS】
標準で行列クラスとかほしい
【Boost.Fusion】
TupleよりFusionのほうがカッコいい
【多重ディスパッチ】
N2216 - Report on language support for Multi-Methods and Open-Methods for C++
void foo(virtual A&) { }
【パターンマッチング】
特殊化じゃなくて、動的にやりたい
int factorial(int n == 0) { return 1; } int factorial(int n) { return n * factorial(n - 1); }
【Range-baseライブラリ】
begin/endはもう飽きた
N1872 - Range Library Proposal
vector<int> v; for_each(v|sorted, [](int x){ cout << x << endl; });
【yield、というか遅延評価】
lazy_list<int> enum_from(int start) { yield start++; } for (int i : enum_from(0)) { cout << i << endl; if (i > 10) break; }
【複数パラメータを受け取ることができるoperator[]】
struct matrix { int operator[](int x, int y); }; matrix m; int n = m[1, 2];
std::pair受け取ってUniform Initializationでそれっぽいことはできるけど。
struct matrix { int operator[](std::pair<int, int>&&); }; matrix m; int n = m[{1, 2}];
【インクルードに代わる何か】
N2316 - Modules in C++(Revision 5)
import std; int main() { std::cout << "Hello" << std::endl; }
【ネストした名前空間の定義】
N1524 - Nested Namespace Definition Proposal
namesapce boost::lambda { }
finallyはいらないです。(RAIIで十分)
N1394 - Some proposed extensions to C++ language
try { } catch (...) { } finally { }
void f() try { } finally { cout << "end f" << endl; }