Deluge Firmware
1.3.0
Build date: 2026.03.02
Loading...
Searching...
No Matches
aligned_buf.h
1
/*
2
* Copyright 2013 Google Inc.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
// A convenient wrapper for buffers with alignment constraints
18
19
// Note that if we were on C++11, we'd use aligned_storage or somesuch.
20
21
#pragma once
22
23
#include <stddef.h>
24
25
template
<
typename
T,
size_t
size,
size_t
alignment = 16>
26
class
AlignedBuf
{
27
public
:
28
T* get() {
return
(T*)((((intptr_t)storage_) + alignment - 1) & -alignment); }
29
30
private
:
31
unsigned
char
storage_[size *
sizeof
(T) + alignment];
32
};
AlignedBuf
Definition
aligned_buf.h:26