From 6a43fc5df0abadfd405c89ed899e819ec93bd5ff Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Fri, 25 Jan 2019 19:30:39 -0500 Subject: [PATCH] Resolves a GCC-troubling circular declaration issue vs. atomic.h. --- Outputs/OpenGL/ScanTarget.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Outputs/OpenGL/ScanTarget.hpp b/Outputs/OpenGL/ScanTarget.hpp index 0fb52bcf1..8af4d8c06 100644 --- a/Outputs/OpenGL/ScanTarget.hpp +++ b/Outputs/OpenGL/ScanTarget.hpp @@ -75,6 +75,10 @@ class ScanTarget: public Outputs::Display::ScanTarget { }; struct PointerSet { + // This constructor is here to appease GCC's interpretation of + // an ambiguity in the C++ standard; cf. https://stackoverflow.com/questions/17430377 + PointerSet() {} + // The sizes below might be less hassle as something more natural like ints, // but squeezing this struct into 64 bits makes the std::atomics more likely // to be lock free; they are under LLVM x86-64.