可以将未命名的结构设为静态吗?
Can an unnamed struct be made static?
能否将未命名的结构设为 class 的静态成员?
struct Foo
{
struct namedStruct
{
int memb1, memb2;
};
static namedStruct namedStructObj;
struct
{
int memb1, memb2;
} unnamedStructObj;
};
Foo::namedStruct Foo::namedStructObj;
// The unnamed type doesn't seem to have a type you can write
是的,有可能:
struct Foo
{
struct
{
int memb1, memb2;
} static unnamedStructObj;
};
decltype(Foo::unnamedStructObj) Foo::unnamedStructObj;
在这里,由于您没有任何方法来引用未命名的结构,因此使用 decltype(Foo::unnamedStructObj)
可以检索 Foo::unnamedStructObj
的类型,因此您可以编写定义。
你可以在decltype()
的帮助下完成:
struct Foo
{
struct namedStruct
{
int memb1, memb2;
};
static namedStruct namedStructObj;
static struct
{
int memb1, memb2;
} unnamedStructObj;
};
Foo::namedStruct Foo::namedStructObj;
decltype(Foo::unnamedStructObj) Foo::unnamedStructObj;
能否将未命名的结构设为 class 的静态成员?
struct Foo
{
struct namedStruct
{
int memb1, memb2;
};
static namedStruct namedStructObj;
struct
{
int memb1, memb2;
} unnamedStructObj;
};
Foo::namedStruct Foo::namedStructObj;
// The unnamed type doesn't seem to have a type you can write
是的,有可能:
struct Foo
{
struct
{
int memb1, memb2;
} static unnamedStructObj;
};
decltype(Foo::unnamedStructObj) Foo::unnamedStructObj;
在这里,由于您没有任何方法来引用未命名的结构,因此使用 decltype(Foo::unnamedStructObj)
可以检索 Foo::unnamedStructObj
的类型,因此您可以编写定义。
你可以在decltype()
的帮助下完成:
struct Foo
{
struct namedStruct
{
int memb1, memb2;
};
static namedStruct namedStructObj;
static struct
{
int memb1, memb2;
} unnamedStructObj;
};
Foo::namedStruct Foo::namedStructObj;
decltype(Foo::unnamedStructObj) Foo::unnamedStructObj;