v8
12.4.254 (node 22.4.1)
V8 is Google's open source JavaScript engine
Toggle main menu visibility
Main Page
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Functions
a
c
d
e
f
g
i
j
m
n
o
p
r
s
t
u
v
Variables
f
g
i
k
m
t
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
w
Enumerations
a
b
c
e
g
h
i
j
k
l
m
n
p
r
s
t
w
Enumerator
a
b
c
d
e
g
i
j
k
n
o
p
r
s
v
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
~
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Typedefs
a
b
c
d
f
g
i
m
n
p
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
Enumerator
b
c
d
e
h
j
k
n
o
p
r
s
t
u
w
Related Symbols
:
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Files
File List
Globals
All
a
c
d
e
m
p
s
t
v
Macros
a
c
d
e
m
p
s
t
v
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Loading...
Searching...
No Matches
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
#include "
cppgc/internal/api-constants.h
"
11
12
namespace
cppgc
{
13
namespace
internal {
14
15
// Special tag type used to denote some sentinel member. The semantics of the
16
// sentinel is defined by the embedder.
17
struct
SentinelPointer
{
18
#if defined(CPPGC_POINTER_COMPRESSION)
19
static
constexpr
intptr_t
kSentinelValue
=
20
1 << api_constants::kPointerCompressionShift;
21
#else
// !defined(CPPGC_POINTER_COMPRESSION)
22
static
constexpr
intptr_t
kSentinelValue
= 0b10;
23
#endif
// !defined(CPPGC_POINTER_COMPRESSION)
24
template
<
typename
T>
25
operator
T*()
const
{
26
return
reinterpret_cast<
T*
>
(
kSentinelValue
);
27
}
28
// Hidden friends.
29
friend
bool
operator==
(
SentinelPointer
,
SentinelPointer
) {
return
true
; }
30
friend
bool
operator!=
(
SentinelPointer
,
SentinelPointer
) {
return
false
; }
31
};
32
33
}
// namespace internal
34
35
constexpr
internal::SentinelPointer
kSentinelPointer
;
36
37
}
// namespace cppgc
38
39
#endif
// INCLUDE_CPPGC_SENTINEL_POINTER_H_
api-constants.h
cppgc
Definition
allocation.h:38
cppgc::kSentinelPointer
constexpr internal::SentinelPointer kSentinelPointer
Definition
sentinel-pointer.h:35
cppgc::internal::SentinelPointer
Definition
sentinel-pointer.h:17
cppgc::internal::SentinelPointer::operator==
friend bool operator==(SentinelPointer, SentinelPointer)
Definition
sentinel-pointer.h:29
cppgc::internal::SentinelPointer::kSentinelValue
static constexpr intptr_t kSentinelValue
Definition
sentinel-pointer.h:22
cppgc::internal::SentinelPointer::operator!=
friend bool operator!=(SentinelPointer, SentinelPointer)
Definition
sentinel-pointer.h:30
include
cppgc
sentinel-pointer.h
Generated on Thu Jul 11 2024 21:30:42 for v8 by
1.9.7