template<class W> class Q { static const int I = 2; public: friend W; }; struct B { int ar[Q<B>::I]; };
struct B { virtual void f() const final; virtual void f(int); }; struct D : B { void f() const; // error: D::f attempts to override final B::f void f(long) override; // error: doesn't override anything void f(int) override; // ok }; struct E final { }; struct F: E { }; // error: deriving from final class
struct A { int i = 42; } a; // initializes ai to 42
constexpr long double operator"" _degrees (long double d) { return d * 0.0175; } long double pi = 180.0_degrees;
template <class T> using Ptr = T*; Ptr<int> ip; // decltype(ip) is int*
struct A { A(int); A(): A(42) { } // delegate to the A(int) constructor };
Source: https://habr.com/ru/post/140557/
All Articles