44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
| // Copyright 2018 The Chromium 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 PLATFORM_BASE_MACROS_H_
 | |
| #define PLATFORM_BASE_MACROS_H_
 | |
| 
 | |
| #ifdef DISALLOW_COPY
 | |
| #define OSP_DISALLOW_COPY DISALLOW_COPY
 | |
| #else
 | |
| #define OSP_DISALLOW_COPY(ClassName) ClassName(const ClassName&) = delete
 | |
| #endif
 | |
| 
 | |
| #ifdef DISALLOW_ASSIGN
 | |
| #define OSP_DISALLOW_ASSIGN DISALLOW_ASSIGN
 | |
| #else
 | |
| #define OSP_DISALLOW_ASSIGN(ClassName) \
 | |
|   ClassName& operator=(const ClassName&) = delete
 | |
| #endif
 | |
| 
 | |
| #ifdef DISALLOW_COPY_AND_ASSIGN
 | |
| #define OSP_DISALLOW_COPY_AND_ASSIGN DISALLOW_COPY_AND_ASSIGN
 | |
| #else
 | |
| #define OSP_DISALLOW_COPY_AND_ASSIGN(ClassName) \
 | |
|   OSP_DISALLOW_COPY(ClassName);                 \
 | |
|   OSP_DISALLOW_ASSIGN(ClassName)
 | |
| #endif
 | |
| 
 | |
| #ifdef DISALLOW_IMPLICIT_CONSTRUCTORS
 | |
| #define OSP_DISALLOW_IMPLICIT_CONSTRUCTORS DISALLOW_IMPLICIT_CONSTRUCTORS
 | |
| #else
 | |
| #define OSP_DISALLOW_IMPLICIT_CONSTRUCTORS(ClassName) \
 | |
|   ClassName() = delete;                               \
 | |
|   OSP_DISALLOW_COPY_AND_ASSIGN(ClassName)
 | |
| #endif
 | |
| 
 | |
| #ifdef NOINLINE
 | |
| #define OSP_NOINLINE NOINLINE
 | |
| #else
 | |
| #define OSP_NOINLINE __attribute__((noinline))
 | |
| #endif
 | |
| 
 | |
| #endif  // PLATFORM_BASE_MACROS_H_
 |