mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 12:51:06 +00:00
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:
parent
edf14d2ca2
commit
e1f95a2d2b
@ -47,27 +47,6 @@ Order CompareAddr(T* aAddr1, 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
|
||||
// floats.
|
||||
class Fraction {
|
||||
|
@ -150,6 +150,7 @@
|
||||
#include "mozilla/DoublyLinkedList.h"
|
||||
#include "mozilla/HelperMacros.h"
|
||||
#include "mozilla/Likely.h"
|
||||
#include "mozilla/Literals.h"
|
||||
#include "mozilla/MathAlgorithms.h"
|
||||
#include "mozilla/RandomNum.h"
|
||||
// Note: MozTaggedAnonymousMmap() could call an LD_PRELOADed mmap
|
||||
|
37
mfbt/Literals.h
Normal file
37
mfbt/Literals.h
Normal file
@ -0,0 +1,37 @@
|
||||
/* -*- 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
|
||||
|
||||
// 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",
|
||||
"Likely.h",
|
||||
"LinkedList.h",
|
||||
"Literals.h",
|
||||
"MacroArgs.h",
|
||||
"MacroForEach.h",
|
||||
"MathAlgorithms.h",
|
||||
|
Loading…
Reference in New Issue
Block a user