使用在该结构中包含结构的 using-definition
Use a using-definition containing a struct inside that struct
我有类似于这个的结构:
typedef struct foo {
std::shared_ptr<std::vector<foo>> data;
} foo;
而且我有一个 using 定义来缩短类型(原始类型要长得多,我知道在这种情况下它不是那么有用):
using fooVec = std::vector<foo>;
现在,我想在结构中使用它:
typedef struct foo {
std::shared_ptr<fooVec> data;
} foo;
但是...把using放在哪里?在struct之前,using没有足够的信息,因为struct是后面定义的。
在 struct 之后,struct 错过了 using 定义,因为它出现在后面......所以 - 以下有效吗?
struct foo;
using fooVec = std::vector<foo>;
typedef struct foo {
std::shared_ptr<fooVec> data;
} foo;
我知道 类 有类似的行为,但是结构呢?不确定这是否会造成一些麻烦...
提前致谢!
是的,我很确定这是有效的。
由于typedef
只是一个类型别名,在C++中不需要(struct标签可以直接作为类型名),直接放弃
struct foo;
using fooVec = std::vector<struct foo>;
struct foo {
std::shared_ptr<fooVec> data;
};
我有类似于这个的结构:
typedef struct foo {
std::shared_ptr<std::vector<foo>> data;
} foo;
而且我有一个 using 定义来缩短类型(原始类型要长得多,我知道在这种情况下它不是那么有用):
using fooVec = std::vector<foo>;
现在,我想在结构中使用它:
typedef struct foo {
std::shared_ptr<fooVec> data;
} foo;
但是...把using放在哪里?在struct之前,using没有足够的信息,因为struct是后面定义的。 在 struct 之后,struct 错过了 using 定义,因为它出现在后面......所以 - 以下有效吗?
struct foo;
using fooVec = std::vector<foo>;
typedef struct foo {
std::shared_ptr<fooVec> data;
} foo;
我知道 类 有类似的行为,但是结构呢?不确定这是否会造成一些麻烦...
提前致谢!
是的,我很确定这是有效的。
由于typedef
只是一个类型别名,在C++中不需要(struct标签可以直接作为类型名),直接放弃
struct foo;
using fooVec = std::vector<struct foo>;
struct foo {
std::shared_ptr<fooVec> data;
};