🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
LocalBuffer.hpp
1#pragma once
2#ifdef __cplusplus
3# include <memory> // for std::unique_ptr
4# include <algorithm> // for std::fill_n
5
6
7#if __cplusplus >= 201402L
8
9#define A_LOCAL_BUFFER(T, buf, size)\
10 auto __a_local_buffer_ ## buf = std::make_unique<T []> (size);\
11 T *buf = __a_local_buffer_ ## buf.get ();
12
13#else
14
15#define A_LOCAL_BUFFER(T, buf, size)\
16 std::unique_ptr<T []> __a_local_buffer_ ## buf { new T [size] };\
17 T *buf = __a_local_buffer_ ## buf.get ();
18
19#endif
20
21#define A_LOCAL_BUFFER_INIT(T, buf, size, value)\
22 A_LOCAL_BUFFER (T, buf, size);\
23 std::fill_n (buf, size, value);
24
25
26#endif