From 5e56f985722eefe4b117c1a7ff7e22021dbee8e4 Mon Sep 17 00:00:00 2001
From: Rytis Bizauskas <luxcapto@gmail.com>
Date: Sat, 18 Jun 2016 00:36:27 -0500
Subject: [PATCH] Made examples compliant with C++11. Compiles with gcc 6.1.

---
 examples/cpp/lib/svl/Utils.h |  3 ++-
 examples/cpp/rings.h         | 34 +++++++++++++++++-----------------
 examples/cpp/spokes.h        | 24 ++++++++++++------------
 3 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/examples/cpp/lib/svl/Utils.h b/examples/cpp/lib/svl/Utils.h
index 471f86a..32599d6 100644
--- a/examples/cpp/lib/svl/Utils.h
+++ b/examples/cpp/lib/svl/Utils.h
@@ -37,7 +37,8 @@ inline Double vl_rand()
 { return(rand() / (RAND_MAX + 1.0)); }
 #endif
 
-#ifndef __CMATH__
+#if !defined __CMATH__ && !defined _GLIBCXX_CMATH
+
 // GNU's complex.h defines its own abs(double)
 #ifdef VL_HAS_ABSF
 inline Float abs(Float x)
diff --git a/examples/cpp/rings.h b/examples/cpp/rings.h
index b6ae179..6be22c4 100644
--- a/examples/cpp/rings.h
+++ b/examples/cpp/rings.h
@@ -29,23 +29,23 @@ public:
         reseed();
     }
 
-    static const float xyzSpeed = 0.6;
-    static const float xyzScale = 0.08;
-    static const float wSpeed = 0.2;
-    static const float wRate = 0.015;
-    static const float ringScale = 1.5;
-    static const float ringScaleRate = 0.01;
-    static const float ringDepth = 0.2;
-    static const float wanderSpeed = 0.04;
-    static const float wanderSize = 1.2;
-    static const float brightnessContrast = 8.0;
-    static const float colorContrast = 4.0;
-    static const float targetBrightness = 0.1;
-    static const float thresholdGain = 0.1;
-    static const float thresholdStepLimit = 0.02;
-    static const float initialThreshold = -1.0f;
-    static const unsigned brightnessOctaves = 4;
-    static const unsigned colorOctaves = 2;
+    static constexpr float xyzSpeed = 0.6;
+    static constexpr float xyzScale = 0.08;
+    static constexpr float wSpeed = 0.2;
+    static constexpr float wRate = 0.015;
+    static constexpr float ringScale = 1.5;
+    static constexpr float ringScaleRate = 0.01;
+    static constexpr float ringDepth = 0.2;
+    static constexpr float wanderSpeed = 0.04;
+    static constexpr float wanderSize = 1.2;
+    static constexpr float brightnessContrast = 8.0;
+    static constexpr float colorContrast = 4.0;
+    static constexpr float targetBrightness = 0.1;
+    static constexpr float thresholdGain = 0.1;
+    static constexpr float thresholdStepLimit = 0.02;
+    static constexpr float initialThreshold = -1.0f;
+    static constexpr unsigned brightnessOctaves = 4;
+    static constexpr unsigned colorOctaves = 2;
 
     // Sample colors along a curved path through a texture
     Texture palette;
diff --git a/examples/cpp/spokes.h b/examples/cpp/spokes.h
index ac78469..3979693 100644
--- a/examples/cpp/spokes.h
+++ b/examples/cpp/spokes.h
@@ -18,18 +18,18 @@ public:
     SpokesEffect()
         : spin(0) {}
 
-    static const float cycleRate = 0.001;
-    static const float wanderSpeed = 40.0;
-    static const float wanderSize = 1.8;
-    static const float hueScale = 5.0;
-    static const float hueRate = 1.0;
-    static const float satRate = 10.0;
-    static const float hueShift = 0.02;
-    static const float spinSpeed = 3.0;
-    static const float spinRate = 100.0;
-    static const float noiseDepth = 3.0;
-    static const float noiseScale = 0.2;
-    static const float noiseSpeed = 1000.0;
+    static constexpr float cycleRate = 0.001;
+    static constexpr float wanderSpeed = 40.0;
+    static constexpr float wanderSize = 1.8;
+    static constexpr float hueScale = 5.0;
+    static constexpr float hueRate = 1.0;
+    static constexpr float satRate = 10.0;
+    static constexpr float hueShift = 0.02;
+    static constexpr float spinSpeed = 3.0;
+    static constexpr float spinRate = 100.0;
+    static constexpr float noiseDepth = 3.0;
+    static constexpr float noiseScale = 0.2;
+    static constexpr float noiseSpeed = 1000.0;
 
     // State variables
     float spin;
-- 
GitLab