From 0a969e5523a7fafa65f6fb84933a143e294e2c63 Mon Sep 17 00:00:00 2001 From: imdeaddev Date: Tue, 6 Jan 2026 16:35:48 +0300 Subject: [PATCH] changed project name, fixed some bugs --- CMakeLists.txt | 18 ++++++++---------- ...make.in => deaddev-bitmask-config.cmake.in} | 2 +- include/deaddev/bitmask.hpp | 17 ++++++++++++++++- 3 files changed, 25 insertions(+), 12 deletions(-) rename cmake/{DeadDevBitmaskConfig.cmake.in => deaddev-bitmask-config.cmake.in} (63%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a7d927..b7ac48b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.23..3.30) -project("DeadDevBitmask" LANGUAGES CXX VERSION 1.0.0) +project("deaddev-bitmask" LANGUAGES CXX VERSION 1.0.0) cmake_policy(SET CMP0135 NEW) message(STATUS "${CMAKE_PROJECT_NAME} v${CMAKE_PROJECT_VERSION}") @@ -27,18 +27,14 @@ add_library(deaddev::bitmask ALIAS bitmask) if(DEADDEV_BITMASK_INSTALL) include(GNUInstallDirs) include(CMakePackageConfigHelpers) - install(TARGETS bitmask EXPORT ${PROJECT_NAME}Targets) - install(EXPORT ${PROJECT_NAME}Targets + install(TARGETS bitmask EXPORT ${PROJECT_NAME}-targets) + install(EXPORT ${PROJECT_NAME}-targets NAMESPACE deaddev:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") configure_package_config_file( - cmake/DeadDevBitmaskConfig.cmake.in - "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" - ) - install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" - ) + cmake/deaddev-bitmask-config.cmake.in + "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") install(DIRECTORY include/deaddev DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING @@ -70,3 +66,5 @@ endif(DEADDEV_BITMASK_BUILD_TESTS) if(DEADDEV_BITMASK_BUILD_EXAMPLES) add_subdirectory(example) endif(DEADDEV_BITMASK_BUILD_EXAMPLES) + +find_package(deaddev-bitmask) diff --git a/cmake/DeadDevBitmaskConfig.cmake.in b/cmake/deaddev-bitmask-config.cmake.in similarity index 63% rename from cmake/DeadDevBitmaskConfig.cmake.in rename to cmake/deaddev-bitmask-config.cmake.in index a5e9e90..374badc 100644 --- a/cmake/DeadDevBitmaskConfig.cmake.in +++ b/cmake/deaddev-bitmask-config.cmake.in @@ -1,5 +1,5 @@ @PACKAGE_INIT@ -include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") check_required_components("@PROJECT_NAME@") message(STATUS "Found @PROJECT_NAME@ v@PROJECT_VERSION@") \ No newline at end of file diff --git a/include/deaddev/bitmask.hpp b/include/deaddev/bitmask.hpp index 9862479..a716dd9 100644 --- a/include/deaddev/bitmask.hpp +++ b/include/deaddev/bitmask.hpp @@ -178,7 +178,7 @@ DEADDEV_CONSTEVAL auto calculate_all_flags(Args... args) -> T { * @return T value with all bits are set to 1 */ template DEADDEV_CONSTEVAL auto calculate_all_flags() -> T { - return static_cast((1 << (sizeof(T) * CHAR_BIT)) - 1); + return static_cast((1ull << ((sizeof(T) * CHAR_BIT) - 1)) - 1); // patched } /** @@ -562,6 +562,21 @@ DEADDEV_NODISCARD constexpr deaddev::bitmask operator&(T left, T right) noexc return deaddev::bitmask(left) & right; } +template >> +DEADDEV_NODISCARD constexpr deaddev::bitmask operator^(T left, ::deaddev::bitmask right) noexcept { + return right ^ left; +} + +template >> +DEADDEV_NODISCARD constexpr deaddev::bitmask operator|(T left, ::deaddev::bitmask right) noexcept { + return right | left; +} + +template >> +DEADDEV_NODISCARD constexpr deaddev::bitmask operator&(T left, ::deaddev::bitmask right) noexcept { + return right & left; +} + /** * @brief Enable bitmask operations for enum * @details defines `auto adl_bitmask_operations_check(T) ->