C++14 on ISO:n 18. elokuuta 2014 hyväksymä C++-ohjelmointikielen standardi ISO/IEC 14882:2014. Standardi korvasi edellisen ISO/IEC 14882:2011 -standardin (C++11).
Standardi koostuu suurelta osin pienemmistä parannuksista ja muutoksista kuin edellinen C++11. Standardin seuraava versio on C++17.
Eräitä huomioitavia muutoksia edelliseen standardiin verrattuna:
class [[deprecated]] ongelmakohde {...};int val = 0b11110000;)constexpr) C++11-standardistaVakiolauseke constexpr on laajennettu ja sallii lisää toimintoja.
Ehtolauseet if ja switch on lisätty sallittuihin toimintoihin.
constexpr int abs(int x)
{
if (x < 0)
x = -x;
return x;
}
Toistorakenteet for, while ja do-while on lisätty sallittuihin toimintoihin.
Muuttujatyypin päättely paluuarvosta:
std::map<int, std::string> m;
auto it = m.find(42); // palauttaa iteraattorin, joka viittaa pariin
Päättely voidaan laajentaa koskemaan metodin paluuarvoa:
string& lookup();
decltype(auto) look_up_a_string() { return lookup(); }
Metodi look_up_a_string() palauttaa string&.
Anonyymeillä inline-funktioilla (lambda-operaattoreilla) on mahdollista lisätä lyhyitä metodeja:
std::vector<int> v;
std::for_each(v.begin(), v.end(), [](int i) { return i+2; });
C++14 ei vaadi konkreettisia tyyppejä lambdassa vaan ne voidaan määritellä auto-tyypillä.
auto lambda = [](auto x, auto y) {return x + y;};
Muuttuvatyyppisen datan käsittelyn puutteen korjaamiseen on esitelty variable templates.
template<typename T> constexpr T pi = T(3.14159265358979323846);