GCC-7 C ++ 17找不到aligned_alloc

时间:2018-02-16 03:53:32

标签: c++ memory-management allocation memory-alignment c++17

我试图在我的C ++代码中使用aligned_alloc,但无法编译:

cc1plus: warning: command line option '-std=c11' is valid for C/ObjC but not for C++
vec.cpp: In function 'int main()':
vec.cpp:13:30: error: 'aligned_alloc' was not declared in this scope
   uint8_t *arr1 = (uint8_t *)aligned_alloc(16, 16);

我正在使用g++-7 -std=c++17 vec.cpp编译Mac OS X 10.13.3并使用G ++版本:g++-7 (Homebrew GCC 7.2.0_1) 7.2.0

aligned_alloc应该是C ++ 17的一部分,所以我很困惑为什么它不起作用。是否有其他方法可以在C ++ 17中获得对齐的内存?

这是一个不起作用的代码示例:

#include <cstdlib>
#include <cstdint>

int main() {
    uint8_t *arr1 = (uint8_t *)std::aligned_alloc(16, 16);
    std::free(arr1);
    return 0;
}

0 个答案:

没有答案