Re[20]: Ошибка, если конструктор определен в h-файле (этюд?)
От: rg45 СССР  
Дата: 06.07.23 09:07
Оценка:
Здравствуйте, so5team, Вы писали:


S>Я все же думаю, что здесь ситуация несколько хитрее.

S>Возможно, если будет родная stdlib от clang-а (как на MacOS), то и диагностика будет другой. Но я сильно сомневаюсь. Так что, предположу, грабли у ТС-а все-таки другие.

У меня описанные симптомы воспроизводятся в самом классическом варианте:

class Class1
{
public:

   Class1();
   ~Class1();

private:

   class Impl;

   std::unique_ptr<Impl> m;
};


При переносе определения конструктора из cpp в тело класса получаю ошибку:

C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.34.31933\include\memory(3105,1): error C2027: use of undefined type 'Class1::Impl'


Visual Studio 2022 v17.6.4, toolset v143, /std:c++20

Вероятно, воспроизводимость чувствительна к компилятору и реализации STL.
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.