]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common: make some common ctors and accessors constexpr 52293/head
authorRonen Friedman <rfriedma@redhat.com>
Sun, 2 Jul 2023 17:24:47 +0000 (12:24 -0500)
committerRonen Friedman <rfriedma@redhat.com>
Wed, 5 Jul 2023 09:35:45 +0000 (04:35 -0500)
Add the constexpr qualifier to:
- some utime_t ctors and accessors;
- a shard_id_t ctor;
- ceph_le operator

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/include/byteorder.h
src/include/types.h
src/include/utime.h

index eb6d5e102b4854c786eba69f3ecb4f7d70499ffb..25b06db982da75a8a84d6396514b366524743beb 100644 (file)
@@ -24,7 +24,7 @@ public:
     v = boost::endian::native_to_little(nv);
     return *this;
   }
-  operator T() const { return boost::endian::little_to_native(v); }
+  constexpr operator T() const { return boost::endian::little_to_native(v); }
   friend inline bool operator==(ceph_le a, ceph_le b) {
     return a.v == b.v;
   }
index a76360db4035a171b929514d007cf98bb7bfff26..bdd09a53df10f7c2022addb7231fbc0b82a86ccc 100644 (file)
@@ -503,7 +503,7 @@ struct shard_id_t {
   int8_t id;
 
   shard_id_t() : id(0) {}
-  explicit shard_id_t(int8_t _id) : id(_id) {}
+  constexpr explicit shard_id_t(int8_t _id) : id(_id) {}
 
   operator int8_t() const { return id; }
 
index fad66af7939ad65750723e57ddb4eb4449dedcb4..ff8df7e5508f24f2ebdf3edc3add77cf19263dca 100644 (file)
@@ -56,7 +56,7 @@ public:
     return (tv.tv_sec == 0) && (tv.tv_nsec == 0);
   }
 
-  void normalize() {
+  constexpr void normalize() {
     if (tv.tv_nsec > 1000000000ul) {
       tv.tv_sec = cap_to_u32_max(tv.tv_sec + tv.tv_nsec / (1000000000ul));
       tv.tv_nsec %= 1000000000ul;
@@ -64,12 +64,12 @@ public:
   }
 
   // cons
-  utime_t() { tv.tv_sec = 0; tv.tv_nsec = 0; }
-  utime_t(time_t s, int n) { tv.tv_sec = s; tv.tv_nsec = n; normalize(); }
-  utime_t(const struct ceph_timespec &v) {
+  constexpr utime_t() { tv.tv_sec = 0; tv.tv_nsec = 0; }
+  constexpr utime_t(time_t s, int n) { tv.tv_sec = s; tv.tv_nsec = n; normalize(); }
+  constexpr utime_t(const struct ceph_timespec &v) {
     decode_timeval(&v);
   }
-  utime_t(const struct timespec v)
+  constexpr utime_t(const struct timespec v)
   {
     // NOTE: this is used by ceph_clock_now() so should be kept
     // as thin as possible.
@@ -125,9 +125,9 @@ public:
   }
 
   // accessors
-  time_t        sec()  const { return tv.tv_sec; }
-  long          usec() const { return tv.tv_nsec/1000; }
-  int           nsec() const { return tv.tv_nsec; }
+  constexpr time_t  sec()  const { return tv.tv_sec; }
+  constexpr long    usec() const { return tv.tv_nsec/1000; }
+  constexpr int     nsec() const { return tv.tv_nsec; }
 
   // ref accessors/modifiers
   __u32&         sec_ref()  { return tv.tv_sec; }
@@ -187,7 +187,7 @@ public:
     t->tv_sec = tv.tv_sec;
     t->tv_nsec = tv.tv_nsec;
   }
-  void decode_timeval(const struct ceph_timespec *t) {
+  constexpr void decode_timeval(const struct ceph_timespec *t) {
     tv.tv_sec = t->tv_sec;
     tv.tv_nsec = t->tv_nsec;
   }
@@ -223,7 +223,7 @@ public:
   }
 
   // cast to double
-  operator double() const {
+  constexpr operator double() const {
     return (double)sec() + ((double)nsec() / 1000000000.0f);
   }
   operator ceph_timespec() const {