Is C++14 adding new keywords to C++?

Table 4 (Keywords) in N3936 (C++14): alignas continue friend register true alignof decltype goto reinterpret_cast try asm default if return typedef auto delete inline short typeid bool do int signed typename break double long sizeof union case dynamic_cast mutable static unsigned catch else namespace static_assert using char enum new static_cast virtual char16_t explicit noexcept struct … Read more

What is the need of template lambda introduced in C++20 when C++14 already has generic lambda?

C++14 generic lambdas are a very cool way to generate a functor with an operator () that looks like this: template <class T, class U> auto operator()(T t, U u) const; But not like this: template <class T> auto operator()(T t1, T t2) const; // Same type please Nor like this: template <class T, std::size_t … Read more

error::make_unique is not a member of ‘std’

make_unique is an upcoming C++14 feature and thus might not be available on your compiler, even if it is C++11 compliant. You can however easily roll your own implementation: template<typename T, typename… Args> std::unique_ptr<T> make_unique(Args&&… args) { return std::unique_ptr<T>(new T(std::forward<Args>(args)…)); } (FYI, here is the final version of make_unique that was voted into C++14. This … Read more

What are transparent comparators?

What problem does this solve, See Dietmar’s answer and remyabel’s answer. and does this change how standard containers work? No, not by default. The new member function template overloads of find etc. allow you to use a type that is comparable with the container’s key, instead of using the key type itself. See N3465 by … Read more

How does generic lambda work in C++14?

Generic lambdas were introduced in C++14. Simply, the closure type defined by the lambda expression will have a templated call operator rather than the regular, non-template call operator of C++11‘s lambdas (of course, when auto appears at least once in the parameter list). So your example: auto glambda = [] (auto a) { return a; … Read more

When should I use C++14 automatic return type deduction?

[*] C++11 raises similar questions: when to use return type deduction in lambdas, and when to use auto variables. The traditional answer to the question in C and C++03 has been “across statement boundaries we make types explicit, within expressions they are usually implicit but we can make them explicit with casts”. C++11 and C++1y … Read more