blob: bd13a35c102344e1475c78aec0395625e8408eb4 [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef LIB_FXL_MACROS_H_
#define LIB_FXL_MACROS_H_
#define FXL_DISALLOW_COPY(TypeName) TypeName(const TypeName&) = delete
#define FXL_DISALLOW_ASSIGN(TypeName) TypeName& operator=(const TypeName&) = delete
#define FXL_DISALLOW_MOVE(TypeName) \
TypeName(TypeName&&) = delete; \
TypeName& operator=(TypeName&&) = delete
#define FXL_DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&) = delete; \
TypeName& operator=(const TypeName&) = delete
#define FXL_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName) \
TypeName(const TypeName&) = delete; \
TypeName(TypeName&&) = delete; \
TypeName& operator=(const TypeName&) = delete; \
TypeName& operator=(TypeName&&) = delete
#define FXL_DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
TypeName() = delete; \
FXL_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName)
#endif // LIB_FXL_MACROS_H_