c++ - c++中双括号 "[[foo()]] type name;"语法的含义?

标签 c++ syntax brackets

this关于避免虚假共享的文章,提供了以下对齐代码:

// C++ (using C++0x alignment syntax)
template<typename T>
struct cache_line_storage {
   [[ align(CACHE_LINE_SIZE) ]] T data;
   char pad[ CACHE_LINE_SIZE > sizeof(T)
        ? CACHE_LINE_SIZE - sizeof(T)
        : 1 ];
};

第 4 行是什么意思? 我以前从未见过这种双括号语法。

最佳答案

那是attribute说明符语法。它是作为一种统一的语法引入的,用于访问以前特定于编译器的扩展(现在有些是标准化的)。

在这种情况下,代码告诉编译器将 dataCACHE_LINE_SIZE 字节对齐。

关于c++ - c++中双括号 "[[foo()]] type name;"语法的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40451840/

相关文章:

dictionary - 如何在 Julia 中初始化字典?

c++ - 程序需要一个括号,但那里已经有一个

c++ - 通过引用传递后值不会改变

c++ - 当按钮按下时间较长时,Windows 会变暗

c++ - haskell 中用多态性替换条件的等效模式是什么?

c++ - 什么时候创建全局变量?

iphone - 奇怪的 objective-c 语法——方括号和@符号

c - c 语法问题 - const * const * 定义

python - python中的单方括号和双方括号

Python: List of sublists,写子列表不带括号