diff --git a/docs/Issues.rst b/docs/Issues.rst index 5cad604..dfc7514 100755 --- a/docs/Issues.rst +++ b/docs/Issues.rst @@ -1,53 +1,60 @@ ================================================================== Known Issues with the Current Implementation of the RoSA Framework ================================================================== .. contents:: :local: TODO ==== * Project logo - `docs/_themes/rosa-theme/static/logo.png` * Packaging with `CPack `_. * What about design documentation on the basics of RoSA? * What about testing the framework? Known Issues ============ The issues that are listed below are described assuming :ref:`minimal build dependencies ` are met. * C++ * The noexcept-specification is part of the function type since C++17 but `std::function` is not defined for noexcept template arguments. So we cannot enforce the expected noexcept semantics for functions stored in `std::function`. See affected functions `rosa::Invoker::wrap()`, `rosa::app::AppAgent::AppAgent()`, `rosa::app::AppSensor::AppSensor()`, and `rosa::app::AppSensor::registerSimulationDataSource()`. * MSVC * While :ref:`RoSA does not use exceptions `, we cannot disable unwind semantics with MSVC because some included header files define functions that use exceptions. + * Versions of MSVC `v142` instatiate discarded sub-statements of `constexpr if`, + which typically causes error + `C2794 `_ + because of undefined template specialization. + Specifically: `'Type': is not a member of any direct or indirect base class of 'rosa::app::MatchingAppTuple'`. + The problem is similar to `this `_. + The older `v141` toolset does not have the problem. * Doxygen * "Potential recursive class relation" is detected for `rosa::GenSeq`, which is true if one ignores the template specialization for the terminal case. It would be nice not to have this pointless warning. * clang-tidy * Clang-tidy reports warnings about `noexcept` marking for the move constructor and move assignment operator of `rosa::Optional` in some situations when the template with the non-specialized argument list is used -- for example, in the file `example/application-interface/application-interface.cpp`. However, the condition for the `noexcept` marking should be met and the warning is pointless.