Найти в Дзене
Encoding IAR
Настройка IAR так чтобы в тексте были UTF-8, а выходные были в ASCII.
1 год назад
sfinae. Выбор функции
template<typename U> using IsSimple = std::enable_if_t<std::is_fundamental<U>::value, U>; template<typename U, class = typename U::type, class = decltype(U::Convert), class = decltype(&U::Get)> using IsUnit = U; template<typename U, class = decltype(&U::count)> using IsDuration = U; template<typename U, class = IsSimple<U>> auto ConvertValue(float value) { return static_cast<U>(value); } template<typename U, class = IsUnit<U>, int = 1> U ConvertValue(float value) { return U::Convert(value); } template<typename...
2 года назад
Переворачивание параметров с помощью шаблона.
template<typename ... Args> struct revert; template<typename T, typename ... Args> struct revert<T, Args...> { template<class ...RevArg> constexpr static auto Make(T val, Args...args, RevArg...revArg) { return revert<Args...>::Make(args..., val, revArg...); } }; template<> struct revert<> { template<class ...RevArg> constexpr static auto Make(RevArg.....
2 года назад
Заглушки для вылавливания обращения к динамической памяти. #include <cstdlib> #include <new> void* operator new(size_t size) noexcept { return malloc(size); } void operator delete(void *p) noexcept { free(p); } void* operator new[](size_t size) noexcept { return operator new(size); // Same as regular new } void operator delete[](void *p) noexcept { operator delete(p); // Same as regular delete } void* operator new(size_t size, std::nothrow_t) noexcept { return operator new(size); // Same as regular new } void operator delete(void *p, std::nothrow_t) noexcept { operator delete(p); // Same as regular delete } void* operator new[](size_t size, std::nothrow_t) noexcept { return operator new(size); // Same as regular new } void operator delete[](void *p, std::nothrow_t) noexcept { operator delete(p); // Same as regular delete }
3 года назад