我正在構建一個C++庫。我有一個struct
,其中包含std::unique_ptr
到另一個struct
,我想從用戶隱藏。我可以忽略頭文件中智能指針的類型參數嗎?
例如:
struct MyStruct {
int x;
private:
std::unique_ptr<MyPrivateStruct> y;
};
現在,我需要在頭文件中,用戶可以包括,讓他們知道它的佈局指定MyStruct
。但是,這要求我也公開頭MyPrivateStruct
,我不想這樣做。由於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因爲這個問題的答案是使用前向聲明。這個問題是關於使用前向聲明時的一個問題。
只是前面聲明的結構?或者你正在努力避免做什麼? – Borgleader
[不能使用std :: unique \ _ptr而T是前向聲明](http://stackoverflow.com/questions/28386185/cant-use-stdunique-ptrt-with-t-being- a-forward-declaration) –
LogicStuff
@LogicStuff不完全;請參閱編輯。 – sdgfsdh