v8
9.4.146 (node 16.13.0)
V8 is Google's open source JavaScript engine
sentinel-pointer.h
Go to the documentation of this file.
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_SENTINEL_POINTER_H_
6
#
define
INCLUDE_CPPGC_SENTINEL_POINTER_H_
7
8
#
include
<
cstdint
>
9
10
namespace
cppgc
{
11
namespace
internal
{
12
13
// Special tag type used to denote some sentinel member. The semantics of the
14
// sentinel is defined by the embedder.
15
struct
SentinelPointer
{
16
template
<
typename
T>
17
operator
T*()
const
{
18
static
constexpr
intptr_t kSentinelValue = 1;
19
return
reinterpret_cast
<T*>(kSentinelValue);
20
}
21
// Hidden friends.
22
friend
bool
operator
==(
SentinelPointer
,
SentinelPointer
) {
return
true
; }
23
friend
bool
operator
!=(
SentinelPointer
,
SentinelPointer
) {
return
false
; }
24
};
25
26
}
// namespace internal
27
28
constexpr
internal
::
SentinelPointer
kSentinelPointer
;
29
30
}
// namespace cppgc
31
32
#
endif
// INCLUDE_CPPGC_SENTINEL_POINTER_H_
include
cppgc
sentinel-pointer.h
Generated on Fri Oct 29 2021 20:27:47 for v8 by
1.9.1