C++03では、ユーザーが基底クラスの仮想関数をオーバーライドする際、誤って意図に反する新しい仮想関数を作成する可能性がある:struct Base {  virtual void some_func(float);  virtual bool on_error();};struct Derived : Base {  virtual void some_func(int);  virtual bool on_eror();};派生クラスDerivedを設計したユーザーは、Base::some_funcおよびBase::on_errorをオーバーライドするつもりで記述したが、それぞれ引数の型や関数名（シグネチャ）が異なるため新しい仮想関数が生成される。上記はC++コードとして誤りではないためコンパイルエラーにならず、間違いに気付くことができない。C++11では、overrideキーワードの導入により、このような問題が解消された:struct Base {  virtual void some_func(float);  virtual bool on_error();};struct Derived : Base {  virtual void some_func(int) override; // 不正：基底クラスの仮想関数をオーバーライドしていない。  virtual bool on_eror() override; // 不正：同上。};overrideキーワードで修飾された仮想関数が、基底クラスのオーバーライド先と一致するかどうかをコンパイラがチェックし、一致しない場合にエラーを報告する。overrideの他にfinalキーワードがある。finalで修飾された仮想関数のオーバーライドは許可されない。struct Base {  virtual void f() const final;};struct Derived : Base {  void f() const; // エラー：Derived::fがfinal Base::fをオーバーライドしようとする。};
標準Cの関数宣言の構文はC言語の機能に対しては最適なものであった。C++ は C から離れて発展してきたが、その基本的な構文を維持しつつ、必要に応じて拡張してきた。しかし、C++ がさらに複雑になってくると、多数の制約、特にテンプレート関数の宣言に関する制約が露呈するようになった。例えば、次の書き方は C++03 では認められていない。// 正しくないtemplate<typename LHS, typename RHS>   Ret AddingFunc(const LHS& lhs, const RHS& rhs) { return lhs + rhs; }Ret 型は、LHS と RHS の型を加算して作られる型であり、それらの実際の型によって決まる。前述の decltype という C++11 の機能を使うこともできない。// 正しくないtemplate<typename LHS, typename RHS>   decltype(lhs+rhs) AddingFunc(const LHS& lhs, const RHS& rhs) { return lhs + rhs; }パーサーが decltype(lhs+rhs) を解析する時点で、lhs と rhs はまだ定義されておらず、有効な識別子にはなっていない。したがって、この書き方も C++ に適合していない。この問題に対処するために、C++11 では次のような関数の定義と宣言の構文が導入された。template<typename LHS, typename RHS>   auto AddingFunc(const LHS& lhs, const RHS& rhs) -> decltype(lhs+rhs) { return lhs + rhs; }この構文は、非テンプレート関数の宣言や定義にも使用できる。struct SomeStruct {  auto FuncName(int x, int y) -> int;}; auto SomeStruct::FuncName(int x, int y) -> int {  return x + y;}この構文で使われるautoキーワードは、自動型推論の場合とは異なった意味をもつ。
C++03では、コンテナの要素を列挙するためには多くのコードを書く必要があった。一方C#やJavaのような言語には、コンテナの最初から最後までをたどるシンプルな「foreach文」が備わっている。C++11にも同様の機能が追加された。以下のようなfor文の別表現を使ってコンテナの要素を簡単に列挙することができる。int my_array[5] = {1, 2, 3, 4, 5};for (int& x : my_array) {    x *= 2;}この形式のfor文は、範囲に基づくfor (range-based for) と呼ばれる。この形式は、Cスタイルの配列や、初期化リスト、イテレータを返すbegin()関数とend()関数が定義されたあらゆる型に対して使うことができる。begin()とend()を持つ標準ライブラリのコンテナはすべてこの形式で列挙できる。
アブラハム・ロビンソンとアレン・バーンスタインは、ヒルベルト空間上のいかなる多項式的コンパクト線型作用素も不変部分空間を持つことを示すのに、超準解析を用いた。これは不変部分空間の問題（invariant subspace problem）を部分的に解決したもので、超準解析による最初期の非自明な応用（新しい定理の証明）である。ヒルベルト空間  上の所与の作用素  に対して、 の反復による  の点  の軌道を考える。グラム・シュミットの正規直交化法をこの軌道に適用することで  の正規直交系  が得られる。いま  を  の"座標"部分空間からなる増大列とする。 の  に関する表現行列  は殆ど上三角（almost upper diagonal）、つまり、係数  だけが対角下（sub-diagonal）に於いて非零である。バーンスタインとロビンソンは、もし  が多項式的コンパクトならば、超有限添数  があって、行列係数  が無限小となることを示す。次に、 の部分空間  を考える。もし  が有限なノルムを持つなら、 は  に無限に近い。いま  を  上の作用素  とする。ここで  は  への直交射影である。 を  がコンパクトとなるような一次以上の複素係数多項式とする。部分空間  は内的かつ超有限次元である。有限次元複素線形空間における上三角化可能性に対して移行原理を適用することで、 の内的な正規直交基  を上手く取ることにより、対応する -次元部分空間  が -不変となるようにできる。 で  への射影を表すものとする。ある有限ノルムの非ゼロベクトル  に対し、 は非ゼロ、もしくは  と仮定して構わない。 がコンパクトであることから、 は  に無限に近く、したがって （無限小の緩みを許せば）であることが分かる。いま  を  なる最大の添字とすれば、 に無限に近い標準元の成す空間が望みの不変部分空間となる。バーンスタイン＝ロビンソンの論文のプレプリントを読んだ上で、ポール・ハルモスは彼らの証明を標準的な手法で以って再解釈した。 どちらの論文も Pacific Journal of Mathematics の同じissueに立て続けに載っている。ハルモスによる証明で使われた幾つかのアイデアは、もっと後のquasi-triangular作用素に関するHalmosの仕事に再び現れている。