зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1864828 - pt 1. Move operators to create literals with units into mfbt/ r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D194950
This commit is contained in:
Родитель
7dd21bd102
Коммит
4f15ab146d
|
@ -47,27 +47,6 @@ Order CompareAddr(T* aAddr1, T* aAddr2) {
|
||||||
return CompareInt(uintptr_t(aAddr1), uintptr_t(aAddr2));
|
return CompareInt(uintptr_t(aAddr1), uintptr_t(aAddr2));
|
||||||
}
|
}
|
||||||
|
|
||||||
// User-defined literals to make constants more legible
|
|
||||||
constexpr size_t operator"" _KiB(unsigned long long int aNum) {
|
|
||||||
return size_t(aNum) * 1024;
|
|
||||||
}
|
|
||||||
|
|
||||||
constexpr size_t operator"" _KiB(long double aNum) {
|
|
||||||
return size_t(aNum * 1024);
|
|
||||||
}
|
|
||||||
|
|
||||||
constexpr size_t operator"" _MiB(unsigned long long int aNum) {
|
|
||||||
return size_t(aNum) * 1024_KiB;
|
|
||||||
}
|
|
||||||
|
|
||||||
constexpr size_t operator"" _MiB(long double aNum) {
|
|
||||||
return size_t(aNum * 1024_KiB);
|
|
||||||
}
|
|
||||||
|
|
||||||
constexpr double operator""_percent(long double aPercent) {
|
|
||||||
return double(aPercent) / 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper for (fast) comparison of fractions without involving divisions or
|
// Helper for (fast) comparison of fractions without involving divisions or
|
||||||
// floats.
|
// floats.
|
||||||
class Fraction {
|
class Fraction {
|
||||||
|
|
|
@ -150,6 +150,7 @@
|
||||||
#include "mozilla/DoublyLinkedList.h"
|
#include "mozilla/DoublyLinkedList.h"
|
||||||
#include "mozilla/HelperMacros.h"
|
#include "mozilla/HelperMacros.h"
|
||||||
#include "mozilla/Likely.h"
|
#include "mozilla/Likely.h"
|
||||||
|
#include "mozilla/Literals.h"
|
||||||
#include "mozilla/MathAlgorithms.h"
|
#include "mozilla/MathAlgorithms.h"
|
||||||
#include "mozilla/RandomNum.h"
|
#include "mozilla/RandomNum.h"
|
||||||
// Note: MozTaggedAnonymousMmap() could call an LD_PRELOADed mmap
|
// Note: MozTaggedAnonymousMmap() could call an LD_PRELOADed mmap
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "mozilla/Literals.h"
|
||||||
#include "mozilla/mozalloc.h"
|
#include "mozilla/mozalloc.h"
|
||||||
#include "mozilla/UniquePtr.h"
|
#include "mozilla/UniquePtr.h"
|
||||||
#include "mozilla/Unused.h"
|
#include "mozilla/Unused.h"
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
/* Helpers for units on integer literals. */
|
||||||
|
|
||||||
|
#ifndef mozilla_Literals_h
|
||||||
|
#define mozilla_Literals_h
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
// User-defined literals to make constants more legible. Use them by
|
||||||
|
// appending them to literals such as:
|
||||||
|
//
|
||||||
|
// size_t page_size = 4_KiB;
|
||||||
|
//
|
||||||
|
constexpr size_t operator"" _KiB(unsigned long long int aNum) {
|
||||||
|
return size_t(aNum) * 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr size_t operator"" _KiB(long double aNum) {
|
||||||
|
return size_t(aNum * 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr size_t operator"" _MiB(unsigned long long int aNum) {
|
||||||
|
return size_t(aNum) * 1024_KiB;
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr size_t operator"" _MiB(long double aNum) {
|
||||||
|
return size_t(aNum * 1024_KiB);
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr double operator""_percent(long double aPercent) {
|
||||||
|
return double(aPercent) / 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* ! mozilla_Literals_h */
|
|
@ -63,6 +63,7 @@ EXPORTS.mozilla = [
|
||||||
"Latin1.h",
|
"Latin1.h",
|
||||||
"Likely.h",
|
"Likely.h",
|
||||||
"LinkedList.h",
|
"LinkedList.h",
|
||||||
|
"Literals.h",
|
||||||
"MacroArgs.h",
|
"MacroArgs.h",
|
||||||
"MacroForEach.h",
|
"MacroForEach.h",
|
||||||
"MathAlgorithms.h",
|
"MathAlgorithms.h",
|
||||||
|
|
Загрузка…
Ссылка в новой задаче