Skip to content

Commit c8265a3

Browse files
committed
add cplx conditional for GNUC < 8
1 parent 3380ce9 commit c8265a3

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

cpp4rtest/src/test-complex.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#include <testthat.h>
22

33
// Helper to initialize Rcomplex portably across compilers
4-
// Modern compilers prefer {{r,i}} but older Windows MinGW doesn't support it
5-
#if defined(_WIN32) && defined(__GNUC__) && !defined(__clang__)
6-
// MinGW on Windows - use direct member initialization with different param names
4+
// Modern compilers prefer {{r,i}} but older compilers don't support it
5+
#if (defined(_WIN32) && defined(__GNUC__) && !defined(__clang__)) || \
6+
(defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 8)
7+
// MinGW on Windows or older GCC - use direct member initialization with different param names
78
#define MAKE_RCOMPLEX(real, imag) []() { Rcomplex c; c.r = (real); c.i = (imag); return c; }()
89
#else
910
// Modern compilers - use aggregate initialization

cpp4rtest/src/test-r_complex.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#include <testthat.h>
22

33
// Helper to initialize Rcomplex portably across compilers
4-
// Modern compilers prefer {{r,i}} but older Windows MinGW doesn't support it
5-
#if defined(_WIN32) && defined(__GNUC__) && !defined(__clang__)
6-
// MinGW on Windows - use direct member initialization with different param names
4+
// Modern compilers prefer {{r,i}} but older compilers don't support it
5+
#if (defined(_WIN32) && defined(__GNUC__) && !defined(__clang__)) || \
6+
(defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 8)
7+
// MinGW on Windows or older GCC - use direct member initialization with different param names
78
#define MAKE_RCOMPLEX(real, imag) []() { Rcomplex c; c.r = (real); c.i = (imag); return c; }()
89
#else
910
// Modern compilers - use aggregate initialization

0 commit comments

Comments
 (0)