Is cinder 0.9.3 buildable in "permissive-" mode?

Using 0.9.2.
I tried to set my MSVS 2022 app to C++17 mode and to “permissive-” mode, meaning the compiler is stricter in detecting C++ standard compliance problems in your code. (Reason: I want to also use Qt in this same project, and Qt requires this setup).

I got errors when instantiating a ci::signals::Signal:

ci::signals::Signal<void()> testSig;

I’m currently trying to rebuild cinder itself with these new settings. First I tried with C++17 AND “permissive-” at the same time. Got errors. Now trying just C++17. Will give you a heads up when it succeeds or fails.

My main question: Is this situation improved in the latest development version of cinder?

Update: building cinder in C++17 mode works fine. So the “permissive-” flag is the culprit.

Ok, found two things that I needed to change.

  1. In my app’s code, I had to do #define QT_NO_KEYWORDS because otherwise Qt defines a signals macro which conflicts with the ci::signals namespace
  2. In libcinder’s code, I had to make 3 trivial changes to make it build with permissive-: include/cinder/msw/OutputDebugStringStream.h | 6 +++--- 1 file changed, 3 ins - Pastebin.com

Also, I checked the latest development version of cinder and it already has those same 3 trivial changes done. All is well in the world!

1 Like