vso*_*tco 8 c++ alignment c++11
在了解对齐问题等的同时,我意识到我对g ++ 4.9(macports OS X)的实现不支持std::align.如果我尝试编译(使用-std=c++11)此示例代码来自http://www.cplusplus.com/reference/memory/align/
// align example
#include <iostream>
#include <memory>
int main() {
char buffer[] = "------------------------";
void * pt = buffer;
std::size_t space = sizeof(buffer) - 1;
while ( std::align(alignof(int), sizeof(char), pt, space) ) {
char* temp = static_cast<char*>(pt);
*temp = '*'; ++temp; space -= sizeof(char);
pt = temp;
}
std::cout << buffer << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译器吐出错误
error: 'align' is not a member of 'std'
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,因为g ++似乎已经实现了对齐支持,因为g ++ 4.8, https://gcc.gnu.org/projects/cxx0x.html(N2341)
代码在clang ++下编译没有任何问题.
这是一个众所周知的g ++问题,我不知道吗?我测试的在线编译器(ideone和coliru)也拒绝了代码.
| 归档时间: |
|
| 查看次数: |
1933 次 |
| 最近记录: |