- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想试试新的 Hinnant's short_alloc allocator据我所知,它取代了旧的 stack_alloc分配器。但是,我无法编译 vector 示例。 g++
说:
~# g++ -std=c++11 stack-allocator-test.cpp -o stack-allocator-test
In file included from stack-allocator-test.cpp:6:0:
short_alloc.h:11:13: error: ‘alignment’ is not a type
short_alloc.h:11:22: error: ISO C++ forbids declaration of ‘alignas’ with no type [-fpermissive]
short_alloc.h:11:22: error: expected ‘;’ at end of member declaration
据我所知,g++
提示第 10 行
和 11
:
static const std::size_t alignment = 16;
alignas(alignment) char buf_[N];
编译器似乎不喜欢alignas 的“表达式版本”但它只需要“type-id 版本”。
我在 Ubuntu 12.10 下使用 g++ 4.7.2
。
~# g++ --version
g++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
可能我遗漏了一些明显的东西,但我无法弄清楚。任何帮助,将不胜感激。 (请不要告诉我必须升级到较新的 g++
,我懒得那样做 :)
最佳答案
g++-4.7.2 不支持对齐方式
。来自 http://gcc.gnu.org/projects/cxx0x.html :
Alignment support | N2341 | GCC 4.8
尝试使用 g++-4.8.0 或 clang;或者你可以使用 __attribute__((aligned))
:
__attribute__((aligned (8))) char buf_[12];
请注意,__attribute__((aligned))
只接受某些整数常量表达式(字面量、模板参数);它不接受 static const
变量。
关于c++ - 如何编译 Hinnant 的 short_alloc 分配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15156005/
我正在尝试使用 Hinnant 的 short_alloc 在堆栈上分配 vector ,我正在尝试完全删除堆分配。现在出现了开发人员使用超出 vector 大小的 push_back 的问题。我正在
我最近遇到了 Howard Hinnant 的 short_alloc这是我见过的自定义分配器的最佳示例。 但是当我花更多时间研究代码以将其集成到我的个人项目中时,我突然想到提供基于堆栈的分配的 ar
我想试试新的 Hinnant's short_alloc allocator据我所知,它取代了旧的 stack_alloc分配器。但是,我无法编译 vector 示例。 g++ 说: ~# g++ -
我正在使用 Howard Hinnant 的漂亮的基于竞技场的小分配器,short_alloc . 令我震惊的是,从 vector 进行的 move 分配可以使用通常的快速 move 分配(即获取目标
我希望能够将自定义分配器与 std::vector 一起使用,以便将小数据缓冲区(例如,小于 1024 字节)存储在堆栈上,并且只有较长的 vector 存储在堆上。作为一个有 Fortran 背景的
我是一名优秀的程序员,十分优秀!