Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类声明中模板参数使用的VisualC++错误C2059_C++_Visual Studio 2010_Templates_Visual C++ - Fatal编程技术网

类声明中模板参数使用的VisualC++错误C2059

类声明中模板参数使用的VisualC++错误C2059,c++,visual-studio-2010,templates,visual-c++,C++,Visual Studio 2010,Templates,Visual C++,以下是: template <int A> class __declspec(align(A)) alignable { }; 不使用Visual Studio进行编译,但使用_属性而不是_declspec与GNU配合使用效果良好。当用作类声明的一部分时,编译器似乎无法解析模板参数A,给出错误C2059:syntax error:identifier 我开始怀疑这是否是有效的C++,因为A在声明的同一语句中使用。让我困惑的是GNU允许这样做;我已经浏览了标准的模板部分,但似乎找不到

以下是:

template <int A>
class __declspec(align(A)) alignable {
};
不使用Visual Studio进行编译,但使用_属性而不是_declspec与GNU配合使用效果良好。当用作类声明的一部分时,编译器似乎无法解析模板参数A,给出错误C2059:syntax error:identifier

<>我开始怀疑这是否是有效的C++,因为A在声明的同一语句中使用。让我困惑的是GNU允许这样做;我已经浏览了标准的模板部分,但似乎找不到任何明确的内容


< >编辑:因为一个类可以从它的模板参数中派生出来,所以在模板声明中模板参数是可用的,这似乎是明智的。

阅读C++标准并不能告诉你微软的“X解密”是如何工作的,它不会告诉你GNU的属性是如何工作的。你必须阅读编译器的文档来描述它的非标准扩展。阅读C++标准并不能告诉你微软的“X”解密程序是如何工作的,它不会告诉你GNU的属性是如何工作的。您必须阅读编译器的非标准扩展文档。