From 8fb58277bec69f1f901c02dc387591642f7b0e52 Mon Sep 17 00:00:00 2001 From: Alexander Sherikov Date: Fri, 7 Feb 2025 20:14:10 +0400 Subject: [PATCH] Add static asserts to catch API misuse --- include/ariles2/members/methods.h | 3 +++ include/ariles2/members/visit_generic_parent.h | 3 +++ qa/scspell.dict | 1 + 3 files changed, 7 insertions(+) diff --git a/include/ariles2/members/methods.h b/include/ariles2/members/methods.h index eab8d461..8536ddf9 100644 --- a/include/ariles2/members/methods.h +++ b/include/ariles2/members/methods.h @@ -36,6 +36,9 @@ const std::string & arilesDefaultID() const override { + static_assert( + std::is_base_of_v::type>, + "Class where ARILES2_INITIALIZE is included must inherit from an ariles class."); static const std::string name(ARILES2_DEFAULT_ID); return (name); } diff --git a/include/ariles2/members/visit_generic_parent.h b/include/ariles2/members/visit_generic_parent.h index 86b43068..cdd4b988 100644 --- a/include/ariles2/members/visit_generic_parent.h +++ b/include/ariles2/members/visit_generic_parent.h @@ -13,6 +13,9 @@ template > \ void arilesVisitParents(t_Visitor &visitor, const typename t_Visitor::Parameters ¶meters) \ { \ + static_assert( \ + std::is_base_of_v::type>, \ + "Class where ARILES2_INITIALIZE is included must inherit from an ariles class."); \ CPPUT_UNUSED_ARG(visitor); \ CPPUT_UNUSED_ARG(parameters); \ CPPUT_TRACE_FUNCTION; \ diff --git a/qa/scspell.dict b/qa/scspell.dict index 6ab7e02f..f88e729c 100644 --- a/qa/scspell.dict +++ b/qa/scspell.dict @@ -25,6 +25,7 @@ cxxabi cygwin dcheck declspec +decltype defgroup defs demangle