grpc
src
core
lib
gprpp
construct_destruct.h
Go to the documentation of this file.
1
// Copyright 2021 gRPC authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef GRPC_CORE_LIB_GPRPP_CONSTRUCT_DESTRUCT_H
16
#define GRPC_CORE_LIB_GPRPP_CONSTRUCT_DESTRUCT_H
17
18
#include <
grpc/support/port_platform.h
>
19
20
#include <new>
21
#include <utility>
22
23
namespace
grpc_core
{
24
25
// Call the destructor of p without having to name the type of p.
26
template
<
typename
T>
27
void
Destruct
(
T
* p) {
28
p->~T();
29
}
30
31
// Call the constructor of p without having to name the type of p and forward
32
// any arguments
33
template
<
typename
T
,
typename
...
Args
>
34
void
Construct
(
T
* p,
Args
&&...
args
) {
35
new
(p)
T
(std::forward<Args>(
args
)...);
36
}
37
38
}
// namespace grpc_core
39
40
#endif // GRPC_CORE_LIB_GPRPP_CONSTRUCT_DESTRUCT_H
grpc_core
Definition:
call_metric_recorder.h:31
T
#define T(upbtypeconst, upbtype, ctype, default_value)
asyncio_get_stats.args
args
Definition:
asyncio_get_stats.py:40
hpack_encoder_fixtures::Args
Args({0, 16384})
grpc_core::Construct
void Construct(T *p, Args &&... args)
Definition:
construct_destruct.h:34
grpc_core::Destruct
void Destruct(T *p)
Definition:
construct_destruct.h:27
port_platform.h
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:01