Skip to content

Commit 55a6634

Browse files
authored
cleanup: no longer need OIIO_INLINE_CONSTEXPR macro (#4607)
Our minimum C++ version allows `inline constexpr`, just use it. Signed-off-by: Larry Gritz <lg@larrygritz.com>
1 parent f25eb77 commit 55a6634

5 files changed

Lines changed: 48 additions & 50 deletions

File tree

src/include/OpenImageIO/platform.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,13 +173,10 @@
173173
// See https://en.cppreference.com/w/cpp/compiler_support
174174
//
175175
// OIIO_CPLUSPLUS_VERSION : which C++ standard is compiling (14, 17, ...)
176-
// OIIO_CONSTEXPR14 :
177176
// OIIO_CONSTEXPR17 :
178177
// OIIO_CONSTEXPR20 : constexpr for C++ >= the designated version, otherwise
179178
// nothing (this is useful for things that can only be
180179
// constexpr for particular versions or greater).
181-
// OIIO_INLINE_CONSTEXPR : inline constexpr variables, added in C++17. For
182-
// older C++, static constexpr.
183180
//
184181
// Note: oiioversion.h defines OIIO_BUILD_CPP (set to 17, 20, etc.)
185182
// reflecting what OIIO itself was *built* with. In contrast,
@@ -192,15 +189,16 @@
192189
#if (__cplusplus >= 202001L)
193190
# define OIIO_CPLUSPLUS_VERSION 20
194191
# define OIIO_CONSTEXPR20 constexpr
195-
# define OIIO_INLINE_CONSTEXPR inline constexpr
196192
#elif (__cplusplus >= 201703L) || (defined(_MSC_VER) && _MSC_VER >= 1914)
197193
# define OIIO_CPLUSPLUS_VERSION 17
198194
# define OIIO_CONSTEXPR20 /* not constexpr before C++20 */
199-
# define OIIO_INLINE_CONSTEXPR inline constexpr
200195
#else
201196
# error "This version of OIIO is meant to work only with C++17 and above"
202197
#endif
203198

199+
// DEPRECATED(3.1): use C++17 inline constexpr
200+
#define OIIO_INLINE_CONSTEXPR inline constexpr
201+
204202
// DEPRECATED(3.0): use C++17 constexpr
205203
#define OIIO_CONSTEXPR17 constexpr
206204

src/include/OpenImageIO/span.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ OIIO_NAMESPACE_BEGIN
3434
using span_size_t = size_t;
3535
using oiio_span_size_type = OIIO::span_size_t; // back-compat alias
3636

37-
OIIO_INLINE_CONSTEXPR span_size_t dynamic_extent = -1;
37+
inline constexpr span_size_t dynamic_extent = -1;
3838

3939

4040

src/include/OpenImageIO/texture.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ enum class InterpMode : uint8_t {
148148
/// The SIMD width for batched texturing operations. This is fixed within
149149
/// any release of OpenImageIO, but may change from release to release and
150150
/// also may be overridden at build time. A typical batch size is 16.
151-
OIIO_INLINE_CONSTEXPR int BatchWidth = OIIO_TEXTURE_SIMD_BATCH_WIDTH;
152-
OIIO_INLINE_CONSTEXPR int BatchAlign = BatchWidth * sizeof(float);
151+
inline constexpr int BatchWidth = OIIO_TEXTURE_SIMD_BATCH_WIDTH;
152+
inline constexpr int BatchAlign = BatchWidth * sizeof(float);
153153

154154
/// A type alias for a SIMD vector of floats with the batch width.
155155
typedef simd::VecType<float, OIIO_TEXTURE_SIMD_BATCH_WIDTH>::type FloatWide;
@@ -168,15 +168,15 @@ typedef uint64_t RunMask;
168168
// The defined constant `RunMaskOn` contains the value with all bits
169169
// `0..BatchWidth-1` set to 1.
170170
#if OIIO_TEXTURE_SIMD_BATCH_WIDTH == 4
171-
OIIO_INLINE_CONSTEXPR RunMask RunMaskOn = 0xf;
171+
inline constexpr RunMask RunMaskOn = 0xf;
172172
#elif OIIO_TEXTURE_SIMD_BATCH_WIDTH == 8
173-
OIIO_INLINE_CONSTEXPR RunMask RunMaskOn = 0xff;
173+
inline constexpr RunMask RunMaskOn = 0xff;
174174
#elif OIIO_TEXTURE_SIMD_BATCH_WIDTH == 16
175-
OIIO_INLINE_CONSTEXPR RunMask RunMaskOn = 0xffff;
175+
inline constexpr RunMask RunMaskOn = 0xffff;
176176
#elif OIIO_TEXTURE_SIMD_BATCH_WIDTH == 32
177-
OIIO_INLINE_CONSTEXPR RunMask RunMaskOn = 0xffffffff;
177+
inline constexpr RunMask RunMaskOn = 0xffffffff;
178178
#elif OIIO_TEXTURE_SIMD_BATCH_WIDTH == 64
179-
OIIO_INLINE_CONSTEXPR RunMask RunMaskOn = 0xffffffffffffffffULL;
179+
inline constexpr RunMask RunMaskOn = 0xffffffffffffffffULL;
180180
#else
181181
# error "Not a valid OIIO_TEXTURE_SIMD_BATCH_WIDTH choice"
182182
#endif

src/include/OpenImageIO/typedesc.h

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -351,42 +351,42 @@ static_assert(std::is_trivially_move_assignable<TypeDesc>(), "TypeDesc is not mo
351351
// Static values for commonly used types. Because these are constexpr,
352352
// they should incur no runtime construction cost and should optimize nicely
353353
// in various ways.
354-
OIIO_INLINE_CONSTEXPR TypeDesc TypeUnknown (TypeDesc::UNKNOWN);
355-
OIIO_INLINE_CONSTEXPR TypeDesc TypeFloat (TypeDesc::FLOAT);
356-
OIIO_INLINE_CONSTEXPR TypeDesc TypeColor (TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::COLOR);
357-
OIIO_INLINE_CONSTEXPR TypeDesc TypePoint (TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::POINT);
358-
OIIO_INLINE_CONSTEXPR TypeDesc TypeVector (TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::VECTOR);
359-
OIIO_INLINE_CONSTEXPR TypeDesc TypeNormal (TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::NORMAL);
360-
OIIO_INLINE_CONSTEXPR TypeDesc TypeMatrix33 (TypeDesc::FLOAT, TypeDesc::MATRIX33);
361-
OIIO_INLINE_CONSTEXPR TypeDesc TypeMatrix44 (TypeDesc::FLOAT, TypeDesc::MATRIX44);
362-
OIIO_INLINE_CONSTEXPR TypeDesc TypeMatrix = TypeMatrix44;
363-
OIIO_INLINE_CONSTEXPR TypeDesc TypeFloat2 (TypeDesc::FLOAT, TypeDesc::VEC2);
364-
OIIO_INLINE_CONSTEXPR TypeDesc TypeVector2 (TypeDesc::FLOAT, TypeDesc::VEC2, TypeDesc::VECTOR);
365-
OIIO_INLINE_CONSTEXPR TypeDesc TypeFloat4 (TypeDesc::FLOAT, TypeDesc::VEC4);
366-
OIIO_INLINE_CONSTEXPR TypeDesc TypeVector4 = TypeFloat4;
367-
OIIO_INLINE_CONSTEXPR TypeDesc TypeString (TypeDesc::STRING);
368-
OIIO_INLINE_CONSTEXPR TypeDesc TypeInt (TypeDesc::INT);
369-
OIIO_INLINE_CONSTEXPR TypeDesc TypeUInt (TypeDesc::UINT);
370-
OIIO_INLINE_CONSTEXPR TypeDesc TypeInt32 (TypeDesc::INT);
371-
OIIO_INLINE_CONSTEXPR TypeDesc TypeUInt32 (TypeDesc::UINT);
372-
OIIO_INLINE_CONSTEXPR TypeDesc TypeInt16 (TypeDesc::INT16);
373-
OIIO_INLINE_CONSTEXPR TypeDesc TypeUInt16 (TypeDesc::UINT16);
374-
OIIO_INLINE_CONSTEXPR TypeDesc TypeInt8 (TypeDesc::INT8);
375-
OIIO_INLINE_CONSTEXPR TypeDesc TypeUInt8 (TypeDesc::UINT8);
376-
OIIO_INLINE_CONSTEXPR TypeDesc TypeInt64 (TypeDesc::INT64);
377-
OIIO_INLINE_CONSTEXPR TypeDesc TypeUInt64 (TypeDesc::UINT64);
378-
OIIO_INLINE_CONSTEXPR TypeDesc TypeVector2i(TypeDesc::INT, TypeDesc::VEC2);
379-
OIIO_INLINE_CONSTEXPR TypeDesc TypeVector3i(TypeDesc::INT, TypeDesc::VEC3);
380-
OIIO_INLINE_CONSTEXPR TypeDesc TypeBox2(TypeDesc::FLOAT, TypeDesc::VEC2, TypeDesc::BOX, 2);
381-
OIIO_INLINE_CONSTEXPR TypeDesc TypeBox3(TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::BOX, 2);
382-
OIIO_INLINE_CONSTEXPR TypeDesc TypeBox2i(TypeDesc::INT, TypeDesc::VEC2, TypeDesc::BOX, 2);
383-
OIIO_INLINE_CONSTEXPR TypeDesc TypeBox3i(TypeDesc::INT, TypeDesc::VEC3, TypeDesc::BOX, 2);
384-
OIIO_INLINE_CONSTEXPR TypeDesc TypeHalf (TypeDesc::HALF);
385-
OIIO_INLINE_CONSTEXPR TypeDesc TypeTimeCode (TypeDesc::UINT, TypeDesc::SCALAR, TypeDesc::TIMECODE, 2);
386-
OIIO_INLINE_CONSTEXPR TypeDesc TypeKeyCode (TypeDesc::INT, TypeDesc::SCALAR, TypeDesc::KEYCODE, 7);
387-
OIIO_INLINE_CONSTEXPR TypeDesc TypeRational(TypeDesc::INT, TypeDesc::VEC2, TypeDesc::RATIONAL);
388-
OIIO_INLINE_CONSTEXPR TypeDesc TypePointer(TypeDesc::PTR);
389-
OIIO_INLINE_CONSTEXPR TypeDesc TypeUstringhash(TypeDesc::USTRINGHASH);
354+
inline constexpr TypeDesc TypeUnknown (TypeDesc::UNKNOWN);
355+
inline constexpr TypeDesc TypeFloat (TypeDesc::FLOAT);
356+
inline constexpr TypeDesc TypeColor (TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::COLOR);
357+
inline constexpr TypeDesc TypePoint (TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::POINT);
358+
inline constexpr TypeDesc TypeVector (TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::VECTOR);
359+
inline constexpr TypeDesc TypeNormal (TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::NORMAL);
360+
inline constexpr TypeDesc TypeMatrix33 (TypeDesc::FLOAT, TypeDesc::MATRIX33);
361+
inline constexpr TypeDesc TypeMatrix44 (TypeDesc::FLOAT, TypeDesc::MATRIX44);
362+
inline constexpr TypeDesc TypeMatrix = TypeMatrix44;
363+
inline constexpr TypeDesc TypeFloat2 (TypeDesc::FLOAT, TypeDesc::VEC2);
364+
inline constexpr TypeDesc TypeVector2 (TypeDesc::FLOAT, TypeDesc::VEC2, TypeDesc::VECTOR);
365+
inline constexpr TypeDesc TypeFloat4 (TypeDesc::FLOAT, TypeDesc::VEC4);
366+
inline constexpr TypeDesc TypeVector4 = TypeFloat4;
367+
inline constexpr TypeDesc TypeString (TypeDesc::STRING);
368+
inline constexpr TypeDesc TypeInt (TypeDesc::INT);
369+
inline constexpr TypeDesc TypeUInt (TypeDesc::UINT);
370+
inline constexpr TypeDesc TypeInt32 (TypeDesc::INT);
371+
inline constexpr TypeDesc TypeUInt32 (TypeDesc::UINT);
372+
inline constexpr TypeDesc TypeInt16 (TypeDesc::INT16);
373+
inline constexpr TypeDesc TypeUInt16 (TypeDesc::UINT16);
374+
inline constexpr TypeDesc TypeInt8 (TypeDesc::INT8);
375+
inline constexpr TypeDesc TypeUInt8 (TypeDesc::UINT8);
376+
inline constexpr TypeDesc TypeInt64 (TypeDesc::INT64);
377+
inline constexpr TypeDesc TypeUInt64 (TypeDesc::UINT64);
378+
inline constexpr TypeDesc TypeVector2i(TypeDesc::INT, TypeDesc::VEC2);
379+
inline constexpr TypeDesc TypeVector3i(TypeDesc::INT, TypeDesc::VEC3);
380+
inline constexpr TypeDesc TypeBox2(TypeDesc::FLOAT, TypeDesc::VEC2, TypeDesc::BOX, 2);
381+
inline constexpr TypeDesc TypeBox3(TypeDesc::FLOAT, TypeDesc::VEC3, TypeDesc::BOX, 2);
382+
inline constexpr TypeDesc TypeBox2i(TypeDesc::INT, TypeDesc::VEC2, TypeDesc::BOX, 2);
383+
inline constexpr TypeDesc TypeBox3i(TypeDesc::INT, TypeDesc::VEC3, TypeDesc::BOX, 2);
384+
inline constexpr TypeDesc TypeHalf (TypeDesc::HALF);
385+
inline constexpr TypeDesc TypeTimeCode (TypeDesc::UINT, TypeDesc::SCALAR, TypeDesc::TIMECODE, 2);
386+
inline constexpr TypeDesc TypeKeyCode (TypeDesc::INT, TypeDesc::SCALAR, TypeDesc::KEYCODE, 7);
387+
inline constexpr TypeDesc TypeRational(TypeDesc::INT, TypeDesc::VEC2, TypeDesc::RATIONAL);
388+
inline constexpr TypeDesc TypePointer(TypeDesc::PTR);
389+
inline constexpr TypeDesc TypeUstringhash(TypeDesc::USTRINGHASH);
390390

391391

392392

src/include/imageio_pvt.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ class LoggedTimer {
157157

158158

159159
// Access to an internal periodic blue noise table.
160-
OIIO_INLINE_CONSTEXPR int bntable_res = 256;
160+
inline constexpr int bntable_res = 256;
161161
extern float bluenoise_table[bntable_res][bntable_res][4];
162162

163163
// 1-channel value lookup of periodic blue noise of a 2D coordinate.

0 commit comments

Comments
 (0)