Explorar o código

Merge topic 'cxx23' into release-3.28

a0fabc4769 cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleter
85627a93c9 cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly
641c02a3ce cmList: Avoid using operator-> on input iterator
e4483b8871 Tests: Avoid compiling call to dap::optional<dap::string>(nullptr)

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Acked-by: scivision <[email protected]>
Merge-request: !8950
Brad King %!s(int64=2) %!d(string=hai) anos
pai
achega
56544c1874

+ 10 - 0
Source/CTest/cmCTestBuildCommand.cxx

@@ -3,11 +3,13 @@
 #include "cmCTestBuildCommand.h"
 
 #include <sstream>
+#include <utility>
 
 #include <cmext/string_view>
 
 #include "cmCTest.h"
 #include "cmCTestBuildHandler.h"
+#include "cmCommand.h"
 #include "cmGlobalGenerator.h"
 #include "cmMakefile.h"
 #include "cmMessageType.h"
@@ -18,6 +20,14 @@
 
 class cmExecutionStatus;
 
+std::unique_ptr<cmCommand> cmCTestBuildCommand::Clone()
+{
+  auto ni = cm::make_unique<cmCTestBuildCommand>();
+  ni->CTest = this->CTest;
+  ni->CTestScriptHandler = this->CTestScriptHandler;
+  return std::unique_ptr<cmCommand>(std::move(ni));
+}
+
 void cmCTestBuildCommand::BindArguments()
 {
   this->cmCTestHandlerCommand::BindArguments();

+ 2 - 9
Source/CTest/cmCTestBuildCommand.h

@@ -5,14 +5,13 @@
 #include "cmConfigure.h" // IWYU pragma: keep
 
 #include <string>
-#include <utility>
 #include <vector>
 
 #include <cm/memory>
 
 #include "cmCTestHandlerCommand.h"
-#include "cmCommand.h"
 
+class cmCommand;
 class cmCTestBuildHandler;
 class cmCTestGenericHandler;
 class cmExecutionStatus;
@@ -31,13 +30,7 @@ public:
   /**
    * This is a virtual constructor for the command.
    */
-  std::unique_ptr<cmCommand> Clone() override
-  {
-    auto ni = cm::make_unique<cmCTestBuildCommand>();
-    ni->CTest = this->CTest;
-    ni->CTestScriptHandler = this->CTestScriptHandler;
-    return std::unique_ptr<cmCommand>(std::move(ni));
-  }
+  std::unique_ptr<cmCommand> Clone() override;
 
   /**
    * The name of the command as specified in CMakeList.txt.

+ 1 - 1
Source/cmGlobalGeneratorFactory.h

@@ -5,6 +5,7 @@
 #include "cmConfigure.h" // IWYU pragma: keep
 
 #include "cmDocumentationEntry.h" // IWYU pragma: export
+#include "cmGlobalGenerator.h"    // IWYU pragma: keep
 
 // TODO The following headers are parts of the `cmGlobalGeneratorFactory`
 // public API, so could be defined as export to IWYU
@@ -13,7 +14,6 @@
 
 #include <cm/memory>
 
-class cmGlobalGenerator;
 class cmake;
 
 /** \class cmGlobalGeneratorFactory

+ 1 - 1
Source/cmList.h

@@ -1192,7 +1192,7 @@ private:
       }
     } else {
       for (; first != last; ++first) {
-        if (!first->empty() || emptyElements == EmptyElements::Yes) {
+        if (!(*first).empty() || emptyElements == EmptyElements::Yes) {
           insertPos = container.insert(insertPos, *first);
           ++insertPos;
         }

+ 1 - 1
Tests/CMakeLib/testDebugger.h

@@ -19,7 +19,7 @@
   do {                                                                        \
     ASSERT_TRUE(x.name == expectedName);                                      \
     ASSERT_TRUE(x.value == expectedValue);                                    \
-    if (expectedType == nullptr) {                                            \
+    if (expectedType == std::string()) {                                      \
       ASSERT_TRUE(x.type == dap::optional<dap::string>());                    \
     } else {                                                                  \
       ASSERT_TRUE(x.type == dap::optional<dap::string>(expectedType));        \

+ 2 - 2
Tests/CMakeLib/testDebuggerVariables.cxx

@@ -196,8 +196,8 @@ static bool testNoSupportsVariableType()
       CreateVariablesRequest(vars->GetId()));
 
   ASSERT_TRUE(variables.size() == 2);
-  ASSERT_VARIABLE(variables[0], "Children", "", nullptr);
-  ASSERT_VARIABLE(variables[1], "test", "value", nullptr);
+  ASSERT_VARIABLE(variables[0], "Children", "", "");
+  ASSERT_VARIABLE(variables[1], "test", "value", "");
 
   return true;
 }