InspIRCd
3.0
include
aligned_storage.h
1
/*
2
* InspIRCd -- Internet Relay Chat Daemon
3
*
4
* Copyright (C) 2014 Attila Molnar <
[email protected]
>
5
*
6
* This file is part of InspIRCd. InspIRCd is free software: you can
7
* redistribute it and/or modify it under the terms of the GNU General Public
8
* License as published by the Free Software Foundation, version 2.
9
*
10
* This program is distributed in the hope that it will be useful, but WITHOUT
11
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13
* details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
20
#pragma once
21
22
namespace
insp
23
{
24
template
<
typename
T>
class
aligned_storage
;
25
}
26
27
template
<
typename
T>
28
class
insp::aligned_storage
29
{
30
mutable
typename
TR1NS::aligned_storage<
sizeof
(T), TR1NS::alignment_of<T>::value>::type data;
31
32
public
:
33
aligned_storage
()
34
{
35
}
36
37
aligned_storage(
const
aligned_storage& other)
38
{
39
}
40
41
T* operator->()
const
42
{
43
return
static_cast<
T*
>
(
static_cast<
void
*
>
(&data));
44
}
45
46
operator
T*()
const
47
{
48
return
operator->();
49
}
50
};
insp::aligned_storage
Definition:
aligned_storage.h:24
Generated by
1.8.17