/*! \file piliterals.h * \ingroup Core * \~\brief * \~english Bytes C++11 literals * \~russian C++11 байтовые суффиксы * * \~\details * \~english * Declare suffixes: * * _KB, _MB, _GB, _TB, _PB - power of 10 * * _KiB, _MiB, _GiB, _TiB, _PiB - power of 2 * \~russian * Объявляет суффиксы: * * _KB, _MB, _GB, _TB, _PB - степени 10 * * _KiB, _MiB, _GiB, _TiB, _PiB - степени 2 */ /* PIP - Platform Independent Primitives Bytes C++11 literals Ivan Pelipenko peri4ko@yandex.ru This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef PILITERALS_H #define PILITERALS_H unsigned long long operator""_KB(long double v) { return v * 1000.; } unsigned long long operator""_KB(unsigned long long v) { return v * 1000; } unsigned long long operator""_KiB(long double v) { return v * 1024.; } unsigned long long operator""_KiB(unsigned long long v) { return v * 1024; } unsigned long long operator""_MB(long double v) { return v * 1000. * 1000.; } unsigned long long operator""_MB(unsigned long long v) { return v * 1000 * 1000; } unsigned long long operator""_MiB(long double v) { return v * 1024. * 1024.; } unsigned long long operator""_MiB(unsigned long long v) { return v * 1024 * 1024; } unsigned long long operator""_GB(long double v) { return v * 1000. * 1000. * 1000.; } unsigned long long operator""_GB(unsigned long long v) { return v * 1000 * 1000 * 1000; } unsigned long long operator""_GiB(long double v) { return v * 1024. * 1024. * 1024.; } unsigned long long operator""_GiB(unsigned long long v) { return v * 1024 * 1024 * 1024; } unsigned long long operator""_TB(long double v) { return v * 1000. * 1000. * 1000. * 1000.; } unsigned long long operator""_TB(unsigned long long v) { return v * 1000 * 1000 * 1000 * 1000; } unsigned long long operator""_TiB(long double v) { return v * 1024. * 1024. * 1024. * 1024.; } unsigned long long operator""_TiB(unsigned long long v) { return v * 1024 * 1024 * 1024 * 1024; } unsigned long long operator""_PB(long double v) { return v * 1000. * 1000. * 1000. * 1000. * 1000.; } unsigned long long operator""_PB(unsigned long long v) { return v * 1000 * 1000 * 1000 * 1000 * 1000; } unsigned long long operator""_PiB(long double v) { return v * 1024. * 1024. * 1024. * 1024. * 1024.; } unsigned long long operator""_PiB(unsigned long long v) { return v * 1024 * 1024 * 1024 * 1024 * 1024; } #endif