gpt4 book ai didi

c++ - 我可以在头文件中省略智能指针的类型参数吗?

转载 作者:行者123 更新时间:2023-11-30 00:45:58 25 4
gpt4 key购买 nike

我正在构建一个 C++ 库。我有一个 struct,其中包含一个 std::unique_ptr 到另一个我想对用户隐藏的 struct

例如:

struct MyStruct {
int x;
private:
std::unique_ptr<MyPrivateStruct> y;
};

现在,我需要在用户可以包含的头文件中指定 MyStruct,以便他们了解其布局。但是,这需要我还公开 MyPrivateStruct 的 header ,而我不想这样做。由于无论类型如何,unique_ptr 的大小都是相同的,是否可以这样做?

struct MyStruct {
int x;
private:
std::unique_ptr<auto> y;
};

然后 y 的类型将由我的 cpp 文件确定。


这不是完全Can't use std::unique_ptr<T> with T being a forward declaration 相同的问题因为这个问题的答案是使用前向声明。这个问题是关于使用前向声明时的问题。

最佳答案

当然可以!

struct MyPrivateStruct;

struct MyStruct {
int x;
private:
std::unique_ptr<MyPrivateStruct> y;
};

关于c++ - 我可以在头文件中省略智能指针的类型参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40767946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com