C++ “双括号”的含义;[[foo()]]类型名称&引用;c++;?

C++ “双括号”的含义;[[foo()]]类型名称&引用;c++;?,c++,syntax,brackets,C++,Syntax,Brackets,在关于避免错误共享的文章中,介绍了为对齐而截取的以下代码: // 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)

在关于避免错误共享的文章中,介绍了为对齐而截取的以下代码:

// 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 ];
};
<代码> /C++(使用C++ 0x对齐语法) 模板 结构缓存线存储{ [[align(缓存线大小)]T数据; 字符填充[缓存线大小>大小(T) 缓存线大小-大小(T) : 1 ]; }; 第四行是什么意思? 我以前从未见过这种双括号语法。

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

在这种情况下,代码告诉编译器将
数据
缓存线大小
字节对齐。

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

在这种情况下,代码告诉编译器将
数据
缓存线大小
字节对齐