POV-Ray : Newsgroups : povray.programming : C++ version : Re: C++ version Server Time
14 Mar 2025 08:05:43 EDT (-0400)
  Re: C++ version  
From: Ray Gardener
Date: 6 Mar 2025 02:10:06
Message: <91a97f4e-48bc-4bf2-91a7-8064476043db@daylongraphics.com>
On 12/17/2021 10:31 AM, Alessio Sangalli wrote:
> Hello, what C++ version does the POV-Ray community want to target for 
> the future? I see POV_CPP11_SUPPORTED that as far as I were able to 
> understand is only used to define POVMS_NULLPTR, but older compilers are 
> supported too anyway.
> 
> Is there any reason to continue to support compilers older than C++11? 
> If we could just assume C++11 (or better, C++17) several sections of the 
> code could be rewritten to take advantage of new features of the 
> anguage. For example, I'd start with using constexpr instead of #define 
> in a lot of cases; kinda of a low hanging fruit, but type checking for 
> constants is in my opinion worth having in the 2020's.
> 

For what it's worth...

Visual Studio 2022 (or VS 17.x if you prefer) works fine, you only have 
to do this:

- Modify the BUILT_BY macro and comment out the related #error line in 
base/build.h like usual (if you haven't already).

- Comment out the inheritance of std::binary_function for the 
NameCompare struct in libraries/openexr/lmImf/mfAttribute.cpp
since std::binary_function is deprecated. Should be near line 65.

- In syspovconfig_msvc.h, add something like this to its list of MSVC 
toolchain definitions:

   #elif _MSC_VER >= 1940 && _MSC_VER < 1950
     #define POV_COMPILER_VER                  "msvc143"
     #define METADATA_COMPILER_STRING          "msvc 14.31"
     #define POV_CPP11_SUPPORTED               1


Ray Gardener


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.