boostorg / statechart

Boost.org statechart module
http://boost.org/libs/statechart
22 stars 43 forks source link

Using std::iterator as base class is deprecated in C++17, causes warnings in MSVC++ #20

Open vbaderks opened 2 years ago

vbaderks commented 2 years ago

The following code requires an explicit macro to suppress a warning to be defined when compiling with MSVC++:

https://github.com/boostorg/statechart/blob/586445b824c5cf0e7e6ce4ff2df620fda5d0f0d7/include/boost/statechart/state_machine.hpp#L359

Adding _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING solves the problem as a workaround. Other Boost libraries have fixed this issue in the past, for example: https://github.com/boostorg/utility/issues/34

Can provide PR if needed.

Background info: https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/