From 40692fe291231b3eb69c499301c33d06630b088d Mon Sep 17 00:00:00 2001 From: Alban Tamisier Date: Mon, 3 Apr 2023 16:12:06 +0200 Subject: [PATCH] iox-#1934 Alias invoke_result to correct implementation based on C++ version --- doc/website/release-notes/iceoryx-unreleased.md | 1 + .../linux/include/iceoryx_platform/platform_settings.hpp | 5 +++++ .../mac/include/iceoryx_platform/platform_settings.hpp | 7 ++++++- .../qnx/include/iceoryx_platform/platform_settings.hpp | 5 +++++ .../unix/include/iceoryx_platform/platform_settings.hpp | 7 ++++++- .../win/include/iceoryx_platform/platform_settings.hpp | 7 ++++++- 6 files changed, 29 insertions(+), 3 deletions(-) diff --git a/doc/website/release-notes/iceoryx-unreleased.md b/doc/website/release-notes/iceoryx-unreleased.md index de1262bcaa7..f0ae753e568 100644 --- a/doc/website/release-notes/iceoryx-unreleased.md +++ b/doc/website/release-notes/iceoryx-unreleased.md @@ -74,6 +74,7 @@ - Fix potential memory leak in `iox::stack` [\#1893](https://github.com/eclipse-iceoryx/iceoryx/issues/1893) - Make `MAX_USER_NAME_LENGTH` and `MAX_GROUP_NAME_LENGTH` platform-dependent [\#1919](https://github.com/eclipse-iceoryx/iceoryx/issues/1919) - Fix milliseconds in log timestamps [\#1932](https://github.com/eclipse-iceoryx/iceoryx/issues/1932) +- Alias `invoke_result` to correct implementation based on C++ version [\#1934](https://github.com/eclipse-iceoryx/iceoryx/issues/1934) **Refactoring:** diff --git a/iceoryx_platform/linux/include/iceoryx_platform/platform_settings.hpp b/iceoryx_platform/linux/include/iceoryx_platform/platform_settings.hpp index 03d0701c20c..b920ed6866d 100644 --- a/iceoryx_platform/linux/include/iceoryx_platform/platform_settings.hpp +++ b/iceoryx_platform/linux/include/iceoryx_platform/platform_settings.hpp @@ -41,8 +41,13 @@ constexpr const char IOX_LOCK_FILE_PATH_PREFIX[] = "/tmp/"; constexpr uint64_t MAX_USER_NAME_LENGTH = 32; constexpr uint64_t MAX_GROUP_NAME_LENGTH = 32; +#if __cplusplus >= 201703L +template +using invoke_result = std::invoke_result; +#else template using invoke_result = std::result_of; +#endif } // namespace platform } // namespace iox diff --git a/iceoryx_platform/mac/include/iceoryx_platform/platform_settings.hpp b/iceoryx_platform/mac/include/iceoryx_platform/platform_settings.hpp index ab5fd9e4906..bd921e2da3a 100644 --- a/iceoryx_platform/mac/include/iceoryx_platform/platform_settings.hpp +++ b/iceoryx_platform/mac/include/iceoryx_platform/platform_settings.hpp @@ -42,8 +42,13 @@ constexpr const char IOX_LOCK_FILE_PATH_PREFIX[] = "/tmp/"; constexpr uint64_t MAX_USER_NAME_LENGTH = 32; constexpr uint64_t MAX_GROUP_NAME_LENGTH = 16; +#if __cplusplus >= 201703L template -using invoke_result = std::invoke_result; +using invoke_result = std::invoke_result; +#else +template +using invoke_result = std::result_of; +#endif } // namespace platform } // namespace iox diff --git a/iceoryx_platform/qnx/include/iceoryx_platform/platform_settings.hpp b/iceoryx_platform/qnx/include/iceoryx_platform/platform_settings.hpp index d9aa36ded68..254f361d298 100644 --- a/iceoryx_platform/qnx/include/iceoryx_platform/platform_settings.hpp +++ b/iceoryx_platform/qnx/include/iceoryx_platform/platform_settings.hpp @@ -40,8 +40,13 @@ constexpr const char IOX_LOCK_FILE_PATH_PREFIX[] = "/var/lock/"; constexpr uint64_t MAX_USER_NAME_LENGTH = 32; constexpr uint64_t MAX_GROUP_NAME_LENGTH = 16; +#if __cplusplus >= 201703L +template +using invoke_result = std::invoke_result; +#else template using invoke_result = std::result_of; +#endif } // namespace platform } // namespace iox diff --git a/iceoryx_platform/unix/include/iceoryx_platform/platform_settings.hpp b/iceoryx_platform/unix/include/iceoryx_platform/platform_settings.hpp index 675a0499678..80aa3ba6cec 100644 --- a/iceoryx_platform/unix/include/iceoryx_platform/platform_settings.hpp +++ b/iceoryx_platform/unix/include/iceoryx_platform/platform_settings.hpp @@ -41,8 +41,13 @@ constexpr const char IOX_LOCK_FILE_PATH_PREFIX[] = "/tmp/"; constexpr uint64_t MAX_USER_NAME_LENGTH = 32; constexpr uint64_t MAX_GROUP_NAME_LENGTH = 16; +#if __cplusplus >= 201703L template -using invoke_result = std::invoke_result; +using invoke_result = std::invoke_result; +#else +template +using invoke_result = std::result_of; +#endif } // namespace platform } // namespace iox diff --git a/iceoryx_platform/win/include/iceoryx_platform/platform_settings.hpp b/iceoryx_platform/win/include/iceoryx_platform/platform_settings.hpp index e95f6e07b1e..cce4421a820 100644 --- a/iceoryx_platform/win/include/iceoryx_platform/platform_settings.hpp +++ b/iceoryx_platform/win/include/iceoryx_platform/platform_settings.hpp @@ -43,8 +43,13 @@ constexpr uint64_t IOX_MAX_PATH_LENGTH = 255U; constexpr uint64_t MAX_USER_NAME_LENGTH = 32; constexpr uint64_t MAX_GROUP_NAME_LENGTH = 16; +#if __cplusplus >= 201703L template -using invoke_result = std::invoke_result; +using invoke_result = std::invoke_result; +#else +template +using invoke_result = std::result_of; +#endif namespace win32 {