std ::unique _ptr с неполным типом won& #39;t compile

Я использую идиому 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++ или я что-то не так делаю?

178
задан 31 March 2012 в 09:17
поделиться