1*3f982cf4SFabien Sanglard // Copyright 2018 The Chromium Authors. All rights reserved. 2*3f982cf4SFabien Sanglard // Use of this source code is governed by a BSD-style license that can be 3*3f982cf4SFabien Sanglard // found in the LICENSE file. 4*3f982cf4SFabien Sanglard 5*3f982cf4SFabien Sanglard #ifndef PLATFORM_BASE_MACROS_H_ 6*3f982cf4SFabien Sanglard #define PLATFORM_BASE_MACROS_H_ 7*3f982cf4SFabien Sanglard 8*3f982cf4SFabien Sanglard #ifdef DISALLOW_COPY 9*3f982cf4SFabien Sanglard #define OSP_DISALLOW_COPY DISALLOW_COPY 10*3f982cf4SFabien Sanglard #else 11*3f982cf4SFabien Sanglard #define OSP_DISALLOW_COPY(ClassName) ClassName(const ClassName&) = delete 12*3f982cf4SFabien Sanglard #endif 13*3f982cf4SFabien Sanglard 14*3f982cf4SFabien Sanglard #ifdef DISALLOW_ASSIGN 15*3f982cf4SFabien Sanglard #define OSP_DISALLOW_ASSIGN DISALLOW_ASSIGN 16*3f982cf4SFabien Sanglard #else 17*3f982cf4SFabien Sanglard #define OSP_DISALLOW_ASSIGN(ClassName) \ 18*3f982cf4SFabien Sanglard ClassName& operator=(const ClassName&) = delete 19*3f982cf4SFabien Sanglard #endif 20*3f982cf4SFabien Sanglard 21*3f982cf4SFabien Sanglard #ifdef DISALLOW_COPY_AND_ASSIGN 22*3f982cf4SFabien Sanglard #define OSP_DISALLOW_COPY_AND_ASSIGN DISALLOW_COPY_AND_ASSIGN 23*3f982cf4SFabien Sanglard #else 24*3f982cf4SFabien Sanglard #define OSP_DISALLOW_COPY_AND_ASSIGN(ClassName) \ 25*3f982cf4SFabien Sanglard OSP_DISALLOW_COPY(ClassName); \ 26*3f982cf4SFabien Sanglard OSP_DISALLOW_ASSIGN(ClassName) 27*3f982cf4SFabien Sanglard #endif 28*3f982cf4SFabien Sanglard 29*3f982cf4SFabien Sanglard #ifdef DISALLOW_IMPLICIT_CONSTRUCTORS 30*3f982cf4SFabien Sanglard #define OSP_DISALLOW_IMPLICIT_CONSTRUCTORS DISALLOW_IMPLICIT_CONSTRUCTORS 31*3f982cf4SFabien Sanglard #else 32*3f982cf4SFabien Sanglard #define OSP_DISALLOW_IMPLICIT_CONSTRUCTORS(ClassName) \ 33*3f982cf4SFabien Sanglard ClassName() = delete; \ 34*3f982cf4SFabien Sanglard OSP_DISALLOW_COPY_AND_ASSIGN(ClassName) 35*3f982cf4SFabien Sanglard #endif 36*3f982cf4SFabien Sanglard 37*3f982cf4SFabien Sanglard #ifdef NOINLINE 38*3f982cf4SFabien Sanglard #define OSP_NOINLINE NOINLINE 39*3f982cf4SFabien Sanglard #else 40*3f982cf4SFabien Sanglard #define OSP_NOINLINE __attribute__((noinline)) 41*3f982cf4SFabien Sanglard #endif 42*3f982cf4SFabien Sanglard 43*3f982cf4SFabien Sanglard #endif // PLATFORM_BASE_MACROS_H_ 44