здесь
С++17
Буду пробовать...
Upd.
Ну, вроде работает. Ничего не поломали.
Концепты тоже работают. Будем пробовать новые фичи.
--- inline variables ---
inline int CommonInt = 100 ;
Теперь можно инлайнить не только функции, но и переменные. Т.е. подобная декларация может быть включена в несколько единиц трансляции (например, через заголовок) без нарушения ODR.
--- Вывод типов для шаблонов классов ---
Теперь можно сделать удобный scope guard.
template <FuncArgType<> Func>
class ScopeGuard : NoCopy
{
Func func;
public:
explicit ScopeGuard(const Func &func_) : func(func_) {}
~ScopeGuard()
{
func();
}
};
int x=12345;
{
ScopeGuard guard( [&x] () { x=0; } );
Printf(Con,"#;\n",x);
}
Printf(Con,"#;\n",x);