Commit b05b778a authored by wahikihiki's avatar wahikihiki Committed by Brad King

clang-tidy: Use `= delete`

parent d75fec5a
......@@ -14,7 +14,6 @@ modernize-*,\
-modernize-raw-string-literal,\
-modernize-return-braced-init-list,\
-modernize-use-auto,\
-modernize-use-equals-delete,\
-modernize-use-noexcept,\
-modernize-use-transparent-functors,\
-modernize-use-using,\
......
......@@ -30,16 +30,6 @@ building on older toolchains some constructs need to be handled with care:
The ``std::auto_ptr`` template is deprecated in C++11. Use ``std::unique_ptr``.
* Use ``CM_DISABLE_COPY(Class)`` to mark classes as non-copyable.
The ``CM_DISABLE_COPY`` macro should be used in the private section of a
class to make sure that attempts to copy or assign an instance of the class
lead to compiler errors even if the compiler does not support *deleted*
functions. As a guideline, all polymorphic classes should be made
non-copyable in order to avoid slicing. Classes that are composed of or
derived from non-copyable classes must also be made non-copyable explicitly
with ``CM_DISABLE_COPY``.
Source Tree Layout
==================
......
......@@ -12,11 +12,12 @@ class cmCursesMainForm;
class cmCursesBoolWidget : public cmCursesWidget
{
CM_DISABLE_COPY(cmCursesBoolWidget)
public:
cmCursesBoolWidget(int width, int height, int left, int top);
cmCursesBoolWidget(cmCursesBoolWidget const&) = delete;
cmCursesBoolWidget& operator=(cmCursesBoolWidget const&) = delete;
// Description:
// Handle user input. Called by the container of this widget
// when this widget has focus. Returns true if the input was
......
......@@ -13,14 +13,17 @@ class cmake;
class cmCursesCacheEntryComposite
{
CM_DISABLE_COPY(cmCursesCacheEntryComposite)
public:
cmCursesCacheEntryComposite(const std::string& key, int labelwidth,
int entrywidth);
cmCursesCacheEntryComposite(const std::string& key, cmake* cm, bool isNew,
int labelwidth, int entrywidth);
~cmCursesCacheEntryComposite();
cmCursesCacheEntryComposite(cmCursesCacheEntryComposite const&) = delete;
cmCursesCacheEntryComposite& operator=(cmCursesCacheEntryComposite const&) =
delete;
const char* GetValue();
friend class cmCursesMainForm;
......
......@@ -12,11 +12,12 @@ class cmCursesMainForm;
class cmCursesDummyWidget : public cmCursesWidget
{
CM_DISABLE_COPY(cmCursesDummyWidget)
public:
cmCursesDummyWidget(int width, int height, int left, int top);
cmCursesDummyWidget(cmCursesDummyWidget const&) = delete;
cmCursesDummyWidget& operator=(cmCursesDummyWidget const&) = delete;
// Description:
// Handle user input. Called by the container of this widget
// when this widget has focus. Returns true if the input was
......
......@@ -9,10 +9,11 @@
class cmCursesFilePathWidget : public cmCursesPathWidget
{
CM_DISABLE_COPY(cmCursesFilePathWidget)
public:
cmCursesFilePathWidget(int width, int height, int left, int top);
cmCursesFilePathWidget(cmCursesFilePathWidget const&) = delete;
cmCursesFilePathWidget& operator=(cmCursesFilePathWidget const&) = delete;
};
#endif // cmCursesFilePathWidget_h
......@@ -11,12 +11,13 @@
class cmCursesForm
{
CM_DISABLE_COPY(cmCursesForm)
public:
cmCursesForm();
virtual ~cmCursesForm();
cmCursesForm(cmCursesForm const&) = delete;
cmCursesForm& operator=(cmCursesForm const&) = delete;
// Description:
// Handle user input.
virtual void HandleInput() = 0;
......
......@@ -14,13 +14,14 @@ class cmCursesMainForm;
class cmCursesLabelWidget : public cmCursesWidget
{
CM_DISABLE_COPY(cmCursesLabelWidget)
public:
cmCursesLabelWidget(int width, int height, int left, int top,
const std::string& name);
~cmCursesLabelWidget() override;
cmCursesLabelWidget(cmCursesLabelWidget const&) = delete;
cmCursesLabelWidget& operator=(cmCursesLabelWidget const&) = delete;
// Description:
// Handle user input. Called by the container of this widget
// when this widget has focus. Returns true if the input was
......
......@@ -13,13 +13,14 @@
class cmCursesLongMessageForm : public cmCursesForm
{
CM_DISABLE_COPY(cmCursesLongMessageForm)
public:
cmCursesLongMessageForm(std::vector<std::string> const& messages,
const char* title);
~cmCursesLongMessageForm() override;
cmCursesLongMessageForm(cmCursesLongMessageForm const&) = delete;
cmCursesLongMessageForm& operator=(cmCursesLongMessageForm const&) = delete;
// Description:
// Handle user input.
void HandleInput() override;
......
......@@ -23,12 +23,13 @@ class cmake;
*/
class cmCursesMainForm : public cmCursesForm
{
CM_DISABLE_COPY(cmCursesMainForm)
public:
cmCursesMainForm(std::vector<std::string> args, int initwidth);
~cmCursesMainForm() override;
cmCursesMainForm(cmCursesMainForm const&) = delete;
cmCursesMainForm& operator=(cmCursesMainForm const&) = delete;
/**
* Set the widgets which represent the cache entries.
*/
......
......@@ -15,11 +15,12 @@ class cmCursesMainForm;
class cmCursesOptionsWidget : public cmCursesWidget
{
CM_DISABLE_COPY(cmCursesOptionsWidget)
public:
cmCursesOptionsWidget(int width, int height, int left, int top);
cmCursesOptionsWidget(cmCursesOptionsWidget const&) = delete;
cmCursesOptionsWidget& operator=(cmCursesOptionsWidget const&) = delete;
// Description:
// Handle user input. Called by the container of this widget
// when this widget has focus. Returns true if the input was
......
......@@ -14,11 +14,12 @@ class cmCursesMainForm;
class cmCursesPathWidget : public cmCursesStringWidget
{
CM_DISABLE_COPY(cmCursesPathWidget)
public:
cmCursesPathWidget(int width, int height, int left, int top);
cmCursesPathWidget(cmCursesPathWidget const&) = delete;
cmCursesPathWidget& operator=(cmCursesPathWidget const&) = delete;
/**
* This method is called when different keys are pressed. The
* subclass can have a special implementation handler for this.
......
......@@ -20,11 +20,12 @@ class cmCursesMainForm;
class cmCursesStringWidget : public cmCursesWidget
{
CM_DISABLE_COPY(cmCursesStringWidget)
public:
cmCursesStringWidget(int width, int height, int left, int top);
cmCursesStringWidget(cmCursesStringWidget const&) = delete;
cmCursesStringWidget& operator=(cmCursesStringWidget const&) = delete;
/**
* Handle user input. Called by the container of this widget
* when this widget has focus. Returns true if the input was
......
......@@ -14,12 +14,13 @@ class cmCursesMainForm;
class cmCursesWidget
{
CM_DISABLE_COPY(cmCursesWidget)
public:
cmCursesWidget(int width, int height, int left, int top);
virtual ~cmCursesWidget();
cmCursesWidget(cmCursesWidget const&) = delete;
cmCursesWidget& operator=(cmCursesWidget const&) = delete;
/**
* Handle user input. Called by the container of this widget
* when this widget has focus. Returns true if the input was
......
......@@ -10,12 +10,14 @@
class cmCLocaleEnvironmentScope
{
CM_DISABLE_COPY(cmCLocaleEnvironmentScope)
public:
cmCLocaleEnvironmentScope();
~cmCLocaleEnvironmentScope();
cmCLocaleEnvironmentScope(cmCLocaleEnvironmentScope const&) = delete;
cmCLocaleEnvironmentScope& operator=(cmCLocaleEnvironmentScope const&) =
delete;
private:
std::string GetEnv(std::string const& key);
void SetEnv(std::string const& key, std::string const& value);
......
......@@ -20,13 +20,15 @@ class cmLocalGenerator;
*/
class cmCPackPropertiesGenerator : public cmScriptGenerator
{
CM_DISABLE_COPY(cmCPackPropertiesGenerator)
public:
cmCPackPropertiesGenerator(cmLocalGenerator* lg,
cmInstalledFile const& installedFile,
std::vector<std::string> const& configurations);
cmCPackPropertiesGenerator(cmCPackPropertiesGenerator const&) = delete;
cmCPackPropertiesGenerator& operator=(cmCPackPropertiesGenerator const&) =
delete;
protected:
void GenerateScriptForConfig(std::ostream& os, const std::string& config,
Indent indent) override;
......
......@@ -24,8 +24,6 @@ struct cmListFileArgument;
*/
class cmCommand
{
CM_DISABLE_COPY(cmCommand)
public:
/**
* Construct the command. By default it has no makefile.
......@@ -37,6 +35,9 @@ public:
*/
virtual ~cmCommand() = default;
cmCommand(cmCommand const&) = delete;
cmCommand& operator=(cmCommand const&) = delete;
/**
* Specify the makefile.
*/
......
......@@ -12,8 +12,6 @@ class cmMakefile;
class cmCommandArgumentParserHelper
{
CM_DISABLE_COPY(cmCommandArgumentParserHelper)
public:
struct ParserType
{
......@@ -23,6 +21,10 @@ public:
cmCommandArgumentParserHelper();
~cmCommandArgumentParserHelper();
cmCommandArgumentParserHelper(cmCommandArgumentParserHelper const&) = delete;
cmCommandArgumentParserHelper& operator=(
cmCommandArgumentParserHelper const&) = delete;
int ParseString(const char* str, int verb);
// For the lexer:
......
......@@ -103,7 +103,6 @@ private:
std::vector<std::string> Vector;
unsigned int DataStart;
const char* Ignore;
cmCAStringVector();
bool DoConsume(const std::string& arg, unsigned int index) override;
void DoReset() override;
};
......@@ -125,7 +124,6 @@ private:
unsigned int DataStart;
bool DoConsume(const std::string& arg, unsigned int index) override;
void DoReset() override;
cmCAString();
};
/** cmCAEnabler is to be used for options which are off by default and can be
......@@ -143,7 +141,6 @@ private:
bool Enabled;
bool DoConsume(const std::string& arg, unsigned int index) override;
void DoReset() override;
cmCAEnabler();
};
/** cmCADisable is to be used for options which are on by default and can be
......@@ -161,7 +158,6 @@ private:
bool Enabled;
bool DoConsume(const std::string& arg, unsigned int index) override;
void DoReset() override;
cmCADisabler();
};
/** Group of arguments, needed for ordering. E.g. WIN32, EXCLUDE_FROM_ALL and
......
......@@ -26,8 +26,4 @@
#define CM_FALLTHROUGH cmsys_FALLTHROUGH
#define CM_DISABLE_COPY(Class) \
Class(Class const&) = delete; \
Class& operator=(Class const&) = delete;
#endif
......@@ -60,11 +60,12 @@ public:
class cmConnection
{
CM_DISABLE_COPY(cmConnection)
public:
cmConnection() = default;
cmConnection(cmConnection const&) = delete;
cmConnection& operator=(cmConnection const&) = delete;
virtual void WriteData(const std::string& data) = 0;
virtual ~cmConnection();
......
......@@ -15,8 +15,6 @@
*/
class cmCryptoHash
{
CM_DISABLE_COPY(cmCryptoHash)
public:
enum Algo
{
......@@ -35,6 +33,9 @@ public:
cmCryptoHash(Algo algo);
~cmCryptoHash();
cmCryptoHash(cmCryptoHash const&) = delete;
cmCryptoHash& operator=(cmCryptoHash const&) = delete;
/// @brief Returns a new hash generator of the requested type
/// @arg algo Hash type name. Supported hash types are
/// MD5, SHA1, SHA224, SHA256, SHA384, SHA512,
......
......@@ -24,13 +24,14 @@ class cmLocalGenerator;
*/
class cmDepends
{
CM_DISABLE_COPY(cmDepends)
public:
/** Instances need to know the build directory name and the relative
path from the build directory to the target file. */
cmDepends(cmLocalGenerator* lg = nullptr, std::string targetDir = "");
cmDepends(cmDepends const&) = delete;
cmDepends& operator=(cmDepends const&) = delete;
/** Set the local generator for the directory in which we are
scanning dependencies. This is not a full local generator; it
has been setup to do relative path conversions for the current
......
......@@ -22,8 +22,6 @@ class cmLocalGenerator;
*/
class cmDependsC : public cmDepends
{
CM_DISABLE_COPY(cmDependsC)
public:
/** Checking instances need to know the build directory name and the
relative path from the build directory to the target file. */
......@@ -35,6 +33,9 @@ public:
/** Virtual destructor to cleanup subclasses properly. */
~cmDependsC() override;
cmDependsC(cmDependsC const&) = delete;
cmDependsC& operator=(cmDependsC const&) = delete;
protected:
// Implement writing/checking methods required by superclass.
bool WriteDependencies(const std::set<std::string>& sources,
......
......@@ -21,8 +21,6 @@ class cmLocalGenerator;
*/
class cmDependsFortran : public cmDepends
{
CM_DISABLE_COPY(cmDependsFortran)
public:
/** Checking instances need to know the build directory name and the
relative path from the build directory to the target file. */
......@@ -37,6 +35,9 @@ public:
/** Virtual destructor to cleanup subclasses properly. */
~cmDependsFortran() override;
cmDependsFortran(cmDependsFortran const&) = delete;
cmDependsFortran& operator=(cmDependsFortran const&) = delete;
/** Callback from build system after a .mod file has been generated
by a Fortran90 compiler to copy the .mod file to the
corresponding stamp file. */
......
......@@ -17,8 +17,6 @@
*/
class cmDependsJava : public cmDepends
{
CM_DISABLE_COPY(cmDependsJava)
public:
/** Checking instances need to know the build directory name and the
relative path from the build directory to the target file. */
......@@ -27,6 +25,9 @@ public:
/** Virtual destructor to cleanup subclasses properly. */
~cmDependsJava() override;
cmDependsJava(cmDependsJava const&) = delete;
cmDependsJava& operator=(cmDependsJava const&) = delete;
protected:
// Implement writing/checking methods required by superclass.
bool WriteDependencies(const std::set<std::string>& sources,
......
......@@ -14,8 +14,6 @@
class cmDynamicLoader
{
CM_DISABLE_COPY(cmDynamicLoader)
public:
// Description:
// Load a dynamic library into the current process.
......
......@@ -21,12 +21,13 @@ class cmFileLockResult;
*/
class cmFileLock
{
CM_DISABLE_COPY(cmFileLock)
public:
cmFileLock();
~cmFileLock();
cmFileLock(cmFileLock const&) = delete;
cmFileLock& operator=(cmFileLock const&) = delete;
/**
* @brief Lock the file.
* @param timeoutSec Lock timeout. If -1 try until success or fatal error.
......
......@@ -13,12 +13,13 @@ class cmFileLockResult;
class cmFileLockPool
{
CM_DISABLE_COPY(cmFileLockPool)
public:
cmFileLockPool();
~cmFileLockPool();
cmFileLockPool(cmFileLockPool const&) = delete;
cmFileLockPool& operator=(cmFileLockPool const&) = delete;
//@{
/**
* @brief Function scope control.
......@@ -58,12 +59,13 @@ private:
class ScopePool
{
CM_DISABLE_COPY(ScopePool)
public:
ScopePool();
~ScopePool();
ScopePool(ScopePool const&) = delete;
ScopePool& operator=(ScopePool const&) = delete;
cmFileLockResult Lock(const std::string& filename,
unsigned long timeoutSec);
cmFileLockResult Release(const std::string& filename);
......
......@@ -14,12 +14,14 @@ class cmRootWatcher;
class cmFileMonitor
{
CM_DISABLE_COPY(cmFileMonitor)
public:
cmFileMonitor(uv_loop_t* l);
~cmFileMonitor();
cmFileMonitor(cmFileMonitor const&) = delete;
cmFileMonitor& operator=(cmFileMonitor const&) = delete;
using Callback = std::function<void(const std::string&, int, int)>;
void MonitorPaths(const std::vector<std::string>& paths, Callback const& cb);
void StopMonitoring();
......
......@@ -97,6 +97,8 @@ public:
*/
~cmGeneratedFileStream() override;
cmGeneratedFileStream(cmGeneratedFileStream const&) = delete;
/**
* Open an output file by name. This should be used only with a
* non-open stream. It automatically generates a name for the
......@@ -134,9 +136,6 @@ public:
* the output file to be changed during the use of cmGeneratedFileStream.
*/
void SetName(const std::string& fname);
private:
cmGeneratedFileStream(cmGeneratedFileStream const&); // not implemented
};
#endif
......@@ -32,13 +32,14 @@ struct cmGeneratorExpressionEvaluator;
*/
class cmGeneratorExpression
{
CM_DISABLE_COPY(cmGeneratorExpression)
public:
/** Construct. */
cmGeneratorExpression(cmListFileBacktrace backtrace = cmListFileBacktrace());
~cmGeneratorExpression();
cmGeneratorExpression(cmGeneratorExpression const&) = delete;
cmGeneratorExpression& operator=(cmGeneratorExpression const&) = delete;
std::unique_ptr<cmCompiledGeneratorExpression> Parse(
std::string const& input);
std::unique_ptr<cmCompiledGeneratorExpression> Parse(const char* input);
......@@ -78,9 +79,13 @@ private:
class cmCompiledGeneratorExpression
{
CM_DISABLE_COPY(cmCompiledGeneratorExpression)
public:
~cmCompiledGeneratorExpression();
cmCompiledGeneratorExpression(cmCompiledGeneratorExpression const&) = delete;
cmCompiledGeneratorExpression& operator=(
cmCompiledGeneratorExpression const&) = delete;
const std::string& Evaluate(
cmLocalGenerator* lg, const std::string& config, bool quiet = false,
cmGeneratorTarget const* headTarget = nullptr,
......@@ -109,8 +114,6 @@ public:
return this->AllTargetsSeen;
}
~cmCompiledGeneratorExpression();
std::string const& GetInput() const { return this->Input; }
cmListFileBacktrace GetBacktrace() const { return this->Backtrace; }
......@@ -165,8 +168,6 @@ private:
class cmGeneratorExpressionInterpreter
{
CM_DISABLE_COPY(cmGeneratorExpressionInterpreter)
public:
cmGeneratorExpressionInterpreter(cmLocalGenerator* localGenerator,
std::string config,
......@@ -179,6 +180,11 @@ public:
{
}
cmGeneratorExpressionInterpreter(cmGeneratorExpressionInterpreter const&) =
delete;
cmGeneratorExpressionInterpreter& operator=(
cmGeneratorExpressionInterpreter const&) = delete;
const std::string& Evaluate(const char* expression,
const std::string& property);
const std::string& Evaluate(const std::string& expression,
......
......@@ -19,6 +19,11 @@ struct cmGeneratorExpressionEvaluator
cmGeneratorExpressionEvaluator() = default;
virtual ~cmGeneratorExpressionEvaluator() = default;
cmGeneratorExpressionEvaluator(cmGeneratorExpressionEvaluator const&) =
delete;
cmGeneratorExpressionEvaluator& operator=(
cmGeneratorExpressionEvaluator const&) = delete;
enum Type
{
Text,
......@@ -29,9 +34,6 @@ struct cmGeneratorExpressionEvaluator
virtual std::string Evaluate(cmGeneratorExpressionContext* context,
cmGeneratorExpressionDAGChecker*) const = 0;
private:
CM_DISABLE_COPY(cmGeneratorExpressionEvaluator)
};
struct TextContent : public cmGeneratorExpressionEvaluator
......
......@@ -27,12 +27,13 @@ class cmTarget;
class cmGeneratorTarget
{
CM_DISABLE_COPY(cmGeneratorTarget)
public:
cmGeneratorTarget(cmTarget*, cmLocalGenerator* lg);
~cmGeneratorTarget();
cmGeneratorTarget(cmGeneratorTarget const&) = delete;
cmGeneratorTarget& operator=(cmGeneratorTarget const&) = delete;
cmLocalGenerator* GetLocalGenerator() const;
cmGlobalGenerator* GetGlobalGenerator() const;
......
......@@ -752,8 +752,6 @@ cmXCodeObject* cmGlobalXCodeGenerator::CreateXCodeSourceFileFromPath(
class XCodeGeneratorExpressionInterpreter
: public cmGeneratorExpressionInterpreter
{
CM_DISABLE_COPY(XCodeGeneratorExpressionInterpreter)
public:
XCodeGeneratorExpressionInterpreter(cmSourceFile* sourceFile,
cmLocalGenerator* localGenerator,
......@@ -765,6 +763,11 @@ public:
{
}
XCodeGeneratorExpressionInterpreter(
XCodeGeneratorExpressionInterpreter const&) = delete;
XCodeGeneratorExpressionInterpreter& operator=(
XCodeGeneratorExpressionInterpreter const&) = delete;
using cmGeneratorExpressionInterpreter::Evaluate;
const std::string& Evaluate(const char* expression,
......
......@@ -45,7 +45,6 @@ public:
cmCommandArgumentGroup ArgumentGroup;
private:
cmInstallCommandArguments(); // disabled
cmCAString Destination;
cmCAString Component;
cmCAString NamelinkComponent;
......
......@@ -21,8 +21,6 @@ class cmMakefile;
*/
class cmInstallGenerator : public cmScriptGenerator
{
CM_DISABLE_COPY(cmInstallGenerator)
public:
enum MessageLevel
{
......@@ -38,6 +36,9 @@ public:
bool exclude_from_all);
~cmInstallGenerator() override;
cmInstallGenerator(cmInstallGenerator const&) = delete;
cmInstallGenerator& operator=(cmInstallGenerator const&) = delete;
virtual bool HaveInstall();
virtual void CheckCMP0082(bool& haveSubdirectoryInstall,
bool& haveInstallAfterSubdirectory);
......
......@@ -16,13 +16,14 @@ class cmOutputConverter;
class cmLinkLineComputer
{
CM_DISABLE_COPY(cmLinkLineComputer)
public:
cmLinkLineComputer(cmOutputConverter* outputConverter,
cmStateDirectory const& stateDir);
virtual ~cmLinkLineComputer();
cmLinkLineComputer(cmLinkLineComputer const&) = delete;
cmLinkLineComputer& operator=(cmLinkLineComputer const&) = delete;
void SetUseWatcomQuote(bool useWatcomQuote);
void SetForResponse(bool forResponse);
void SetRelink(bool relink);
......
......@@ -18,13 +18,15 @@ class cmStateDirectory;
class cmLinkLineDeviceComputer : public cmLinkLineComputer
{
CM_DISABLE_COPY(cmLinkLineDeviceComputer)
public:
cmLinkLineDeviceComputer(cmOutputConverter* outputConverter,
cmStateDirectory const& stateDir);
~cmLinkLineDeviceComputer() override;
cmLinkLineDeviceComputer(cmLinkLineDeviceComputer const&) = delete;
cmLinkLineDeviceComputer& operator=(cmLinkLineDeviceComputer const&) =
delete;