C++ xlc:模板化类的sizeof不工作
我在模板参数中使用sizeof(),如下所示:C++ xlc:模板化类的sizeof不工作,c++,templates,xlc,C++,Templates,Xlc,我在模板参数中使用sizeof(),如下所示: #include <iostream> template<class A> struct Foo { A a; }; template<class A, size_t S = sizeof(Foo<A>)> class Bar { public: Bar() { // prints 4, as expected std::cout <<
#include <iostream>
template<class A>
struct Foo {
A a;
};
template<class A, size_t S = sizeof(Foo<A>)>
class Bar {
public:
Bar() {
// prints 4, as expected
std::cout << sizeof(Foo<A>) << std::endl;
// prints 1! why?
std::cout << S << std::endl;
}
};
int main(int, char**) {
Bar<int> foo;
}
#包括
模板
结构Foo{
A A;
};
模板
分类栏{
公众:
Bar(){
//按预期打印4张
std::cout这可能是编译器中的一个bug,它已在AIX上修复,但在Z上未修复
在AIX上测试最新(即ptf)版本
V13.1.3预期结果
V13.1预期结果
V12.1预期结果
V11.1预期结果
关于佐斯
V2R1失败
V2R2失效
如果您报告了错误,我们可以将修复程序放入V2R1。编译器错误?而且,我无法在MSVC、Clang和GCC上复制它