std :: unique_ptr с неполным типом не будет компилироваться
Я использую pimpl-идиому сstd::unique_ptr
:
class window {
window(const rectangle& rect);
private:
class window_impl; // defined elsewhere
std::unique_ptr<window_impl> impl_; // won't compile
};
Тем не менее, я получаю ошибку компиляции относительно использования неполного типа, в строке 304 в<memory>
:
Неверное заявлениеsizeof
«неполному типу»uixx::window::window_impl
'
Насколько я знаю,std::unique_ptr
должен быть в состоянии использоваться с неполным типом. Это ошибка в libc ++ или я что-то здесь не так делаю?