diff options
40 files changed, 106 insertions, 32 deletions
diff --git a/Jamroot.jam b/Jamroot.jam index c1f55f0..bca9e3e 100644 --- a/Jamroot.jam +++ b/Jamroot.jam @@ -51,6 +51,7 @@ project <toolset>tidy:<xcheckxx>hicpp-no-array-decay <toolset>tidy:<checkxx>performance-* <toolset>tidy:<define>ICE_IGNORE_VERSION + <toolset>tidy:<define>ICE_MEMBER_IMPORT_EXPORT <toolset>tidy:<mapping>iwyu.json <toolset>tidy:<librarydef>boost <toolset>tidy:<librarydef>std @@ -8,6 +8,14 @@ ] }, { + "symbol": [ + "strncasecmp", + "private", + "<cstring>", + "public" + ] + }, + { "include": [ "<bits/types/stack_t.h>", "private", @@ -97,6 +105,22 @@ }, { "include": [ + "<boost/lambda/core.hpp>", + "private", + "<boost/lambda/lambda.hpp>", + "public" + ] + }, + { + "include": [ + "@<boost/lambda/detail/.*>", + "private", + "<boost/lambda/lambda.hpp>", + "public" + ] + }, + { + "include": [ "@<boost/preprocessor/.*>", "private", "<boost/test/unit_test.hpp>", diff --git a/libadhocutil/boost-test-extra.cpp b/libadhocutil/boost-test-extra.cpp new file mode 100644 index 0000000..940e182 --- /dev/null +++ b/libadhocutil/boost-test-extra.cpp @@ -0,0 +1 @@ +#include "boost-test-extra.h" diff --git a/libadhocutil/c++11Helpers.cpp b/libadhocutil/c++11Helpers.cpp new file mode 100644 index 0000000..5fb07dd --- /dev/null +++ b/libadhocutil/c++11Helpers.cpp @@ -0,0 +1 @@ +#include "c++11Helpers.h" diff --git a/libadhocutil/cache.cpp b/libadhocutil/cache.cpp new file mode 100644 index 0000000..05b26b0 --- /dev/null +++ b/libadhocutil/cache.cpp @@ -0,0 +1 @@ +#include "cache.h" diff --git a/libadhocutil/cache.h b/libadhocutil/cache.h index 5f606c2..56fb5ac 100644 --- a/libadhocutil/cache.h +++ b/libadhocutil/cache.h @@ -3,8 +3,10 @@ #include "c++11Helpers.h" #include "visibility.h" +#include <boost/multi_index/indexed_by.hpp> #include <boost/multi_index/member.hpp> #include <boost/multi_index/ordered_index.hpp> +#include <boost/multi_index/tag.hpp> #include <boost/multi_index_container.hpp> #include <ctime> #include <functional> diff --git a/libadhocutil/cache.impl.cpp b/libadhocutil/cache.impl.cpp new file mode 100644 index 0000000..13cd32a --- /dev/null +++ b/libadhocutil/cache.impl.cpp @@ -0,0 +1 @@ +#include "cache.impl.h" diff --git a/libadhocutil/cache.impl.h b/libadhocutil/cache.impl.h index 7ba5853..6b72e29 100644 --- a/libadhocutil/cache.impl.h +++ b/libadhocutil/cache.impl.h @@ -4,8 +4,10 @@ #include "cache.h" // IWYU pragma: export #include "lockHelpers.h" #include <boost/lambda/lambda.hpp> -#include <mutex> -#include <shared_mutex> +#include <ctime> +#include <memory> +#include <variant> +// IWYU pragma: no_include <boost/multi_index/detail/unbounded.hpp> namespace AdHoc { diff --git a/libadhocutil/case_less.cpp b/libadhocutil/case_less.cpp new file mode 100644 index 0000000..5e83f68 --- /dev/null +++ b/libadhocutil/case_less.cpp @@ -0,0 +1,4 @@ +#include "case_less.h" +#include <string_view> + +static_assert(&AdHoc::case_less::operator()<std::string_view, std::string_view>); diff --git a/libadhocutil/compileTimeFormatter.cpp b/libadhocutil/compileTimeFormatter.cpp new file mode 100644 index 0000000..d367071 --- /dev/null +++ b/libadhocutil/compileTimeFormatter.cpp @@ -0,0 +1 @@ +#include "compileTimeFormatter.h" diff --git a/libadhocutil/compileTimeFormatter.h b/libadhocutil/compileTimeFormatter.h index 2524043..33fe677 100644 --- a/libadhocutil/compileTimeFormatter.h +++ b/libadhocutil/compileTimeFormatter.h @@ -1,23 +1,26 @@ #ifndef ADHOCUTIL_COMPILE_TIME_FORMATTER_H #define ADHOCUTIL_COMPILE_TIME_FORMATTER_H -#include <array> -#include <boost/preprocessor/variadic/size.hpp> -#include <cstring> -#include <iostream> +#include <boost/preprocessor/control/iif.hpp> // IWYU pragma: keep +#include <boost/preprocessor/variadic/size.hpp> // IWYU pragma: keep #include <optional> #include <sstream> // IWYU pragma: export +#include <type_traits> +// Mapped for for BOOST_PP_VARIADIC_SIZE, BOOST_PP... in tests +// IWYU pragma: no_include <boost/test/unit_test.hpp> -namespace AdHoc { #ifdef __cpp_nontype_template_parameter_class # define USE_FIXED_STRING #endif #ifdef USE_FIXED_STRING # define CtfString const auto +# include <array> +# include <iostream> #else # define CtfString const auto & #endif +namespace AdHoc { // Template char utils template<typename char_type> constexpr bool @@ -248,6 +251,7 @@ namespace AdHoc { namespace support { template<typename CharT, std::size_t N> class basic_fixed_string : public std::array<CharT, N> { public: + // cppcheck-suppress noExplicitConstructor constexpr basic_fixed_string(const CharT (&str)[N + 1]) { for (decltype(N) x = 0; x < N; x++) { @@ -333,11 +337,11 @@ namespace AdHoc { { return AdHoc::FormatterDetail<FMT<T, t...>::fmtstr, sizeof...(t)>(); } +# ifdef __clang__ +# pragma clang diagnostic pop +# endif +# pragma GCC diagnostic pop #endif -#ifdef __clang__ -# pragma clang diagnostic pop -#endif -#pragma GCC diagnostic pop } } diff --git a/libadhocutil/ctf-impl/printf-compat.cpp b/libadhocutil/ctf-impl/printf-compat.cpp new file mode 100644 index 0000000..b3edf9c --- /dev/null +++ b/libadhocutil/ctf-impl/printf-compat.cpp @@ -0,0 +1 @@ +#include "printf-compat.h" diff --git a/libadhocutil/ctf-impl/printf-compat.h b/libadhocutil/ctf-impl/printf-compat.h index aa0ead9..1ca30c3 100644 --- a/libadhocutil/ctf-impl/printf-compat.h +++ b/libadhocutil/ctf-impl/printf-compat.h @@ -8,6 +8,7 @@ #include <boost/preprocessor/comma_if.hpp> #include <boost/preprocessor/if.hpp> #include <boost/preprocessor/repetition/repeat.hpp> +#include <cstring> #include <iomanip> #include <type_traits> diff --git a/libadhocutil/exception.cpp b/libadhocutil/exception.cpp new file mode 100644 index 0000000..5a8d53c --- /dev/null +++ b/libadhocutil/exception.cpp @@ -0,0 +1 @@ +#include "exception.h" diff --git a/libadhocutil/factory.cpp b/libadhocutil/factory.cpp new file mode 100644 index 0000000..4ea88f8 --- /dev/null +++ b/libadhocutil/factory.cpp @@ -0,0 +1 @@ +#include "factory.h" diff --git a/libadhocutil/factory.h b/libadhocutil/factory.h index a2a49ed..1d614fd 100644 --- a/libadhocutil/factory.h +++ b/libadhocutil/factory.h @@ -3,6 +3,8 @@ #include "plugins.h" #include "visibility.h" +#include <memory> +#include <string_view> namespace AdHoc { /** diff --git a/libadhocutil/factory.impl.cpp b/libadhocutil/factory.impl.cpp new file mode 100644 index 0000000..b5abe96 --- /dev/null +++ b/libadhocutil/factory.impl.cpp @@ -0,0 +1 @@ +#include "factory.impl.h" diff --git a/libadhocutil/factory.impl.h b/libadhocutil/factory.impl.h index a630592..905b7c4 100644 --- a/libadhocutil/factory.impl.h +++ b/libadhocutil/factory.impl.h @@ -3,6 +3,8 @@ #include "factory.h" // IWYU pragma: export #include "plugins.impl.h" // IWYU pragma: export +#include <memory> +#include <string_view> namespace AdHoc { template<typename Base, typename... Params> diff --git a/libadhocutil/globalStatic.cpp b/libadhocutil/globalStatic.cpp new file mode 100644 index 0000000..6dd773e --- /dev/null +++ b/libadhocutil/globalStatic.cpp @@ -0,0 +1 @@ +#include "globalStatic.h" diff --git a/libadhocutil/globalStatic.h b/libadhocutil/globalStatic.h index a3847eb..4bc16ef 100644 --- a/libadhocutil/globalStatic.h +++ b/libadhocutil/globalStatic.h @@ -1,8 +1,6 @@ #ifndef ADHOCUTIL_GLOBALSTATIC_H #define ADHOCUTIL_GLOBALSTATIC_H -#include <memory> - namespace AdHoc { /** * Wrapper class for initialising/destroying a global static object via diff --git a/libadhocutil/globalStatic.impl.cpp b/libadhocutil/globalStatic.impl.cpp new file mode 100644 index 0000000..94a9b89 --- /dev/null +++ b/libadhocutil/globalStatic.impl.cpp @@ -0,0 +1 @@ +#include "globalStatic.impl.h" diff --git a/libadhocutil/handle.cpp b/libadhocutil/handle.cpp new file mode 100644 index 0000000..8a3cede --- /dev/null +++ b/libadhocutil/handle.cpp @@ -0,0 +1 @@ +#include "handle.h" diff --git a/libadhocutil/lazyPointer.cpp b/libadhocutil/lazyPointer.cpp new file mode 100644 index 0000000..910e04a --- /dev/null +++ b/libadhocutil/lazyPointer.cpp @@ -0,0 +1 @@ +#include "lazyPointer.h" diff --git a/libadhocutil/lazyPointer.h b/libadhocutil/lazyPointer.h index 8b523d3..c412f03 100644 --- a/libadhocutil/lazyPointer.h +++ b/libadhocutil/lazyPointer.h @@ -3,7 +3,6 @@ #include <functional> #include <memory> -#include <ostream> #include <variant> namespace AdHoc { diff --git a/libadhocutil/lockHelpers.cpp b/libadhocutil/lockHelpers.cpp new file mode 100644 index 0000000..436f153 --- /dev/null +++ b/libadhocutil/lockHelpers.cpp @@ -0,0 +1 @@ +#include "lockHelpers.h" diff --git a/libadhocutil/optionalUtils.cpp b/libadhocutil/optionalUtils.cpp new file mode 100644 index 0000000..56311d5 --- /dev/null +++ b/libadhocutil/optionalUtils.cpp @@ -0,0 +1 @@ +#include "optionalUtils.h" diff --git a/libadhocutil/plugins.impl.cpp b/libadhocutil/plugins.impl.cpp new file mode 100644 index 0000000..cb141f9 --- /dev/null +++ b/libadhocutil/plugins.impl.cpp @@ -0,0 +1 @@ +#include "plugins.impl.h" diff --git a/libadhocutil/plugins.impl.h b/libadhocutil/plugins.impl.h index d3ce7a2..d10976b 100644 --- a/libadhocutil/plugins.impl.h +++ b/libadhocutil/plugins.impl.h @@ -2,6 +2,12 @@ #define ADHOCUTIL_PLUGINS_IMPL_H #include "plugins.h" // IWYU pragma: export +#include "unique.h" +#include "visibility.h" +#include <memory> +#include <set> +#include <string_view> +#include <typeinfo> namespace AdHoc { template<typename T> diff --git a/libadhocutil/resourcePool.impl.cpp b/libadhocutil/resourcePool.impl.cpp new file mode 100644 index 0000000..7554472 --- /dev/null +++ b/libadhocutil/resourcePool.impl.cpp @@ -0,0 +1 @@ +#include "resourcePool.impl.h" diff --git a/libadhocutil/resourcePool.impl.h b/libadhocutil/resourcePool.impl.h index 31f0dbf..eb34b22 100644 --- a/libadhocutil/resourcePool.impl.h +++ b/libadhocutil/resourcePool.impl.h @@ -4,7 +4,13 @@ #include "lockHelpers.h" #include "resourcePool.h" // IWYU pragma: export #include "safeMapFind.h" +#include "semaphore.h" #include <boost/assert.hpp> +#include <cstddef> +#include <exception> +#include <memory> +#include <thread> +#include <typeinfo> namespace AdHoc { // diff --git a/libadhocutil/safeMapFind.cpp b/libadhocutil/safeMapFind.cpp new file mode 100644 index 0000000..d2e62f6 --- /dev/null +++ b/libadhocutil/safeMapFind.cpp @@ -0,0 +1,5 @@ +#include "safeMapFind.h" +#include <array> + +constexpr std::array<int, 3> testData {0, 1, 2}; +static_assert(AdHoc::containerContains(testData, 0)); diff --git a/libadhocutil/safeMapFind.h b/libadhocutil/safeMapFind.h index 3a11f0c..0f5c24d 100644 --- a/libadhocutil/safeMapFind.h +++ b/libadhocutil/safeMapFind.h @@ -52,7 +52,7 @@ namespace AdHoc { * Simple search, true if found, false otherwise */ template<class Cont> - bool + constexpr bool containerContains(const Cont & c, const typename Cont::value_type & v) { return (std::find(c.begin(), c.end(), v) != c.end()); diff --git a/libadhocutil/strUtil.cpp b/libadhocutil/strUtil.cpp new file mode 100644 index 0000000..7b40fb2 --- /dev/null +++ b/libadhocutil/strUtil.cpp @@ -0,0 +1 @@ +#include "strUtil.h" diff --git a/libadhocutil/unique.cpp b/libadhocutil/unique.cpp new file mode 100644 index 0000000..4b6f34a --- /dev/null +++ b/libadhocutil/unique.cpp @@ -0,0 +1 @@ +#include "unique.h" diff --git a/libadhocutil/unittests/testCache.cpp b/libadhocutil/unittests/testCache.cpp index 2b7f89a..c6ab6b4 100644 --- a/libadhocutil/unittests/testCache.cpp +++ b/libadhocutil/unittests/testCache.cpp @@ -7,7 +7,6 @@ #include <ostream> #include <string> #include <unistd.h> -#include <variant> // NOLINTNEXTLINE(hicpp-special-member-functions) class Obj { diff --git a/libadhocutil/unittests/testCompileTimeFormatter.cpp b/libadhocutil/unittests/testCompileTimeFormatter.cpp index 877f3e8..fc45dba 100644 --- a/libadhocutil/unittests/testCompileTimeFormatter.cpp +++ b/libadhocutil/unittests/testCompileTimeFormatter.cpp @@ -1,9 +1,9 @@ #define BOOST_TEST_MODULE CompileTimeFormatter #include <boost/test/unit_test.hpp> +#include "compileTimeFormatter.h" #include "memstream.h" #include <boost/assert.hpp> -#include <compileTimeFormatter.h> #include <cstdint> #include <cstdio> #include <cstdlib> diff --git a/libadhocutil/unittests/testPluginsRuntime.cpp b/libadhocutil/unittests/testPluginsRuntime.cpp index a558910..9b3279d 100644 --- a/libadhocutil/unittests/testPluginsRuntime.cpp +++ b/libadhocutil/unittests/testPluginsRuntime.cpp @@ -5,7 +5,6 @@ #include "utilTestClasses.h" #include <dlfcn.h> #include <filesystem> -#include <memory> #include <optional> #include <set> #include <string> diff --git a/libadhocutil/unittests/testResourcePool.cpp b/libadhocutil/unittests/testResourcePool.cpp index 08f6caf..baa965a 100644 --- a/libadhocutil/unittests/testResourcePool.cpp +++ b/libadhocutil/unittests/testResourcePool.cpp @@ -1,20 +1,19 @@ #define BOOST_TEST_MODULE ResourcePool #include <boost/test/unit_test.hpp> -#include "c++11Helpers.h" // for SPECIAL_MEMBERS_DELETE -#include "lockHelpers.h" // for ScopeLock -#include "semaphore.h" // for Semaphore -#include <atomic> // for atomic, __atomic_base -#include <list> // for list, operator==, _List_iterator -#include <map> // for operator== -#include <memory> // for make_shared, shared_ptr -#include <mutex> // for unique_lock, mutex -#include <resourcePool.impl.h> -#include <stdexcept> // for exception -#include <thread> // for thread, get_id -#include <tuple> // for get -#include <unistd.h> // for usleep, sleep -#include <utility> // for move +#include "c++11Helpers.h" +#include "lockHelpers.h" +#include "resourcePool.impl.h" +#include "semaphore.h" +#include <atomic> +#include <list> +#include <map> +#include <memory> +#include <mutex> +#include <stdexcept> +#include <thread> +#include <unistd.h> +#include <utility> class MockResource { public: diff --git a/libadhocutil/unittests/testStrUtil.cpp b/libadhocutil/unittests/testStrUtil.cpp index fa642a7..f29bb07 100644 --- a/libadhocutil/unittests/testStrUtil.cpp +++ b/libadhocutil/unittests/testStrUtil.cpp @@ -1,4 +1,5 @@ #include <strUtil.h> +#include <string_view> constexpr auto ltrim(std::string_view s, const auto c) diff --git a/libadhocutil/visibility.cpp b/libadhocutil/visibility.cpp new file mode 100644 index 0000000..b0a6ba9 --- /dev/null +++ b/libadhocutil/visibility.cpp @@ -0,0 +1 @@ +#include "visibility.h" |