From 0019849c9068e565e6fa16d8307901d07fa363d6 Mon Sep 17 00:00:00 2001 From: degirumautomation Date: Tue, 12 Aug 2025 18:20:47 +0000 Subject: [PATCH] C++ SDK release 0.18.2 --- doc/AIClient-cpp-Reference.pdf | Bin 487493 -> 487504 bytes inc/Utilities/dg_file_utilities.h | 9 ++++++--- inc/Utilities/dg_version.h | 8 ++++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/doc/AIClient-cpp-Reference.pdf b/doc/AIClient-cpp-Reference.pdf index 7c937ecb33945241e72ea518d2528c5ccd7b68f6..7ab7d5472f18235fb1ecd8859f913c2a3c1a4958 100644 GIT binary patch delta 18890 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 delta 18946 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 WAvBqC91kdqo`&s(K+J5-_x=NO>Fl2X diff --git a/inc/Utilities/dg_file_utilities.h b/inc/Utilities/dg_file_utilities.h index da249aa..36f452e 100644 --- a/inc/Utilities/dg_file_utilities.h +++ b/inc/Utilities/dg_file_utilities.h @@ -149,7 +149,9 @@ class FileHelper static size_t dir_size( const std::string &directory ) { size_t size{ 0 }; - for( const auto &entry : std::filesystem::recursive_directory_iterator( directory ) ) + for( const auto &entry : std::filesystem::recursive_directory_iterator( + directory, + std::filesystem::directory_options::skip_permission_denied ) ) { if( entry.is_regular_file() && !entry.is_symlink() ) size += entry.file_size(); @@ -363,7 +365,9 @@ class FileHelper std::regex pattern( regex_pattern ); // Iterate recursively over the directory - for( const auto &entry : std::filesystem::recursive_directory_iterator( path ) ) + for( const auto &entry : std::filesystem::recursive_directory_iterator( + path, + std::filesystem::directory_options::skip_permission_denied ) ) { if( !entry.is_directory() ) { @@ -391,7 +395,6 @@ class FileHelper } } - /// Set current working directory to current executable location directory /// \return original current working directory static std::string cwd2exe() diff --git a/inc/Utilities/dg_version.h b/inc/Utilities/dg_version.h index b48cf16..b090744 100644 --- a/inc/Utilities/dg_version.h +++ b/inc/Utilities/dg_version.h @@ -21,19 +21,19 @@ #define DG_VERSION_MINOR 18 #endif #ifndef DG_VERSION_REVISION - #define DG_VERSION_REVISION 1 + #define DG_VERSION_REVISION 2 #endif #ifndef DG_VERSION_FULL - #define DG_VERSION_FULL "0.18.1" + #define DG_VERSION_FULL "0.18.2" #endif #ifndef DG_GIT_REV - #define DG_GIT_REV "0f3b7b2" + #define DG_GIT_REV "731bf2f" #endif #ifndef DG_GIT_TAG #define DG_GIT_TAG "" #endif #ifndef DG_GIT_BRANCH - #define DG_GIT_BRANCH "0.18.1" + #define DG_GIT_BRANCH "0.18.2" #endif #endif // DG_GLOBAL_VERSION_H