// widget.h
template<bool debug>
struct WidgetT
{
WidgetT();
[[msvc::no_unique_address]]
[[no_unique_address]]
std::conditional_t<debug, Logger, std::monostate> m_logger;//..
void Log(std::string const& message) {
if constexpr (debug) {//<<
m_logger.log(message);
}//>>
}
std::string m_name;
};
extern template struct WidgetT<false>;
extern template struct WidgetT<true>;
#ifdef EXTRA_WIDGET_DEBUGGING
using Widget = WidgetT<true>;
#else
using Widget = WidgetT<false>;
#endif
2505C++,C++版本的静如
于 2025-05-03 13:55:48 首次发布