diff --git a/template.cc b/template.cc index 8fe208b..9bb2710 100644 --- a/template.cc +++ b/template.cc @@ -1,8 +1,4 @@ -#pragma GCC diagnostic ignored "-Wunused-const-variable" -#pragma GCC diagnostic ignored "-Wreorder" -#pragma GCC diagnostic ignored "-Wunknown-pragmas" -#pragma GCC diagnostic ignored "-Wshift-op-parentheses" -#pragma GCC diagnostic ignored "-Wlogical-op-parentheses" +// #pragma GCC target("popcnt,lzcnt,abm,bmi,bmi2") #pragma GCC optimize("Ofast") /************* This code requires C++17. ***************/ @@ -399,9 +395,10 @@ bool chmin(T& lhs, const U& rhs) { return ret; } -#define functor(func) [&](auto&&... val) \ +#define functor(func) ([&](auto&&... val) \ noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ -{return func(std::forward(val)...);} +{return func(std::forward(val)...);}) +#define expr(ret, ...) ([&] (__VA_ARGS__) { return (ret); }) template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); }