Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/nodejs/deps/v8/include/cppgc/object-size-trait.h
$ cat -n /usr/include/nodejs/deps/v8/include/cppgc/object-size-trait.h 1 // Copyright 2021 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef INCLUDE_CPPGC_OBJECT_SIZE_TRAIT_H_ 6 #define INCLUDE_CPPGC_OBJECT_SIZE_TRAIT_H_ 7 8 #include
9 10 #include "cppgc/type-traits.h" 11 #include "v8config.h" // NOLINT(build/include_directory) 12 13 namespace cppgc { 14 15 namespace internal { 16 17 struct V8_EXPORT BaseObjectSizeTrait { 18 protected: 19 static size_t GetObjectSizeForGarbageCollected(const void*); 20 static size_t GetObjectSizeForGarbageCollectedMixin(const void*); 21 }; 22 23 } // namespace internal 24 25 namespace subtle { 26 27 /** 28 * Trait specifying how to get the size of an object that was allocated using 29 * `MakeGarbageCollected()`. Also supports querying the size with an inner 30 * pointer to a mixin. 31 */ 32 template
> 33 struct ObjectSizeTrait; 34 35 template
36 struct ObjectSizeTrait
: cppgc::internal::BaseObjectSizeTrait { 37 static_assert(sizeof(T), "T must be fully defined"); 38 static_assert(IsGarbageCollectedTypeV
, 39 "T must be of type GarbageCollected or GarbageCollectedMixin"); 40 41 static size_t GetSize(const T& object) { 42 return GetObjectSizeForGarbageCollected(&object); 43 } 44 }; 45 46 template
47 struct ObjectSizeTrait
: cppgc::internal::BaseObjectSizeTrait { 48 static_assert(sizeof(T), "T must be fully defined"); 49 50 static size_t GetSize(const T& object) { 51 return GetObjectSizeForGarbageCollectedMixin(&object); 52 } 53 }; 54 55 } // namespace subtle 56 } // namespace cppgc 57 58 #endif // INCLUDE_CPPGC_OBJECT_SIZE_TRAIT_H_
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™