From 5eb8cfd691683770013c49899fd03ae6c9f9de4c Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Fri, 27 Nov 2020 22:06:08 -0800 Subject: [PATCH] [wpilibc] Fix MatchDataSender (#2892) The is_convertible test was always treating the input as bool. Use is_same on T instead. --- wpilibc/src/main/native/cpp/DriverStation.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/wpilibc/src/main/native/cpp/DriverStation.cpp b/wpilibc/src/main/native/cpp/DriverStation.cpp index 781dcd2fec..f6794cc7b9 100644 --- a/wpilibc/src/main/native/cpp/DriverStation.cpp +++ b/wpilibc/src/main/native/cpp/DriverStation.cpp @@ -32,19 +32,17 @@ class MatchDataSenderEntry { public: MatchDataSenderEntry(const std::shared_ptr& table, const wpi::Twine& key, const T& initialVal) { - static_assert(std::is_convertible() || - std::is_convertible() || - std::is_convertible(), - "Invalid type for MatchDataSenderEntry - must be convertable " - "to bool, double or wpi::Twine"); + static_assert(std::is_same_v || std::is_same_v || + std::is_same_v, + "Invalid type for MatchDataSenderEntry - must be " + "to bool, double or std::string"); ntEntry = table->GetEntry(key); - if constexpr (std::is_convertible()) { + if constexpr (std::is_same_v) { ntEntry.ForceSetBoolean(initialVal); - } else if constexpr (std::is_convertible()) { + } else if constexpr (std::is_same_v) { ntEntry.ForceSetDouble(initialVal); - } else if constexpr (std::is_convertible()) { + } else if constexpr (std::is_same_v) { ntEntry.ForceSetString(initialVal); } prevVal = initialVal;