//===- Compiler.h ---------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef MCLD_SUPPORT_COMPILER_H_ #define MCLD_SUPPORT_COMPILER_H_ #include // DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions. It goes // in the private: declarations in a class. #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ TypeName(const TypeName&) = delete; \ void operator=(const TypeName&) = delete // A macro to disallow all the implicit constructors, namely the default // constructor, copy constructor and operator= functions. // // This should be used in the private: declarations for a class that wants to // prevent anyone from instantiating it. This is especially useful for classes // containing only static methods. #define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \ TypeName() = delete; \ DISALLOW_COPY_AND_ASSIGN(TypeName) #endif // MCLD_SUPPORT_COMPILER_H_