我正在尝试在 GCC 4.8.1 上编译此源代码:
g++ -std=c++11 -D DCACHE1_LINESIZE=64 lockfree_rb_q.cpp -lpthread -o
lockfree_rb_q.exe
但我得到一个编译器错误,我不明白:
lockfree_rb_q.cpp:171:22: error: '::memalign' has not been declared
thr_p_ = (ThrPos *)::memalign(getpagesize(), sizeof(ThrPos) * n);
有问题的代码行是:
ptr_array_ = (T **)::memalign(getpagesize(),Q_SIZE * sizeof(void *));
我知道memalign
它是什么,它是干什么用的,但是在这个源代码中我不知道为什么作者::
之前添加了memalign
. 这是为了什么目的?我不知道自己可以使用哪些关键字来搜索此信息。