Пожалуйста, объясните некоторые ошибки g++.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Пожалуйста, объясните некоторые ошибки g++.

Сообщение Anonymous »

Я получаю некоторые не совсем понятные ошибки из g++, относящиеся к шаблонам:

Код: Выделить всё

[4/7] Building CXX object DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/GreyMultiBitmap.cpp.o
FAILED: DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/GreyMultiBitmap.cpp.o
/usr/bin/c++ -DLIBRAW_NODLL -DNOMINMAX -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_WIDGETS_LIB -DUNICODE -DZ_DEVELOP -D_CONSOLE -D_CRT_SECURE_NO_DEPRECATE -D_UNICODE -I/home/amonra/.vs/DSS/out/build/DeepSkyStackerKernel/DeepSkyStackerKernel_autogen/include -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/. -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/../DeepSkyStacker -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/../ZClass -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/../LibRaw -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/../Tools -I/home/amonra/.vs/DSS/LibRaw/buildfiles/. -I/home/amonra/.vs/DSS/LibRaw/buildfiles/.. -I/home/amonra/.vs/DSS/ZClass/. -isystem /opt/Qt/6.8.0/gcc_64/include/QtWidgets -isystem /opt/Qt/6.8.0/gcc_64/include -isystem /opt/Qt/6.8.0/gcc_64/include/QtCore -isystem /opt/Qt/6.8.0/gcc_64/mkspecs/linux-g++ -isystem /opt/Qt/6.8.0/gcc_64/include/QtGui -isystem /opt/Qt/6.8.0/gcc_64/include/QtNetwork -g -std=c++20 -mavx -msse4.2 -fPIC -Winvalid-pch -include /home/amonra/.vs/DSS/out/build/DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/cmake_pch.hxx -MD -MT DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/GreyMultiBitmap.cpp.o -MF DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/GreyMultiBitmap.cpp.o.d -o DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/GreyMultiBitmap.cpp.o -c /home/amonra/.vs/DSS/DeepSkyStackerKernel/GreyMultiBitmap.cpp
/home/amonra/.vs/DSS/DeepSkyStackerKernel/GreyMultiBitmap.cpp:10:95: error: default argument for template parameter for class enclosing 'virtual std::shared_ptr CGrayMultiBitmapT::CreateNewMemoryBitmap() const'
10 | std::shared_ptr CGrayMultiBitmapT::CreateNewMemoryBitmap() const
|                                                                                               ^~~~~
/home/amonra/.vs/DSS/DeepSkyStackerKernel/GreyMultiBitmap.cpp:29:98: error: default argument for template parameter for class enclosing 'virtual std::shared_ptr CGrayMultiBitmapT::CreateOutputMemoryBitmap() const'
29 | std::shared_ptr CGrayMultiBitmapT::CreateOutputMemoryBitmap() const
|                                                                                                  ^~~~~
/home/amonra/.vs/DSS/DeepSkyStackerKernel/GreyMultiBitmap.cpp:50:129: error: default argument for template parameter for class enclosing 'virtual bool CGrayMultiBitmapT::SetScanLines(CMemoryBitmap*, int, const std::vector&)'
50 | bool CGrayMultiBitmapT::SetScanLines(CMemoryBitmap* pBitmap, int lLine, const std::vector& vScanLines)
|                                                                                                                                 ^
[5/7] Building CXX object DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/ColorMultiBitmap.cpp.o
FAILED: DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/ColorMultiBitmap.cpp.o
/usr/bin/c++ -DLIBRAW_NODLL -DNOMINMAX -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_WIDGETS_LIB -DUNICODE -DZ_DEVELOP -D_CONSOLE -D_CRT_SECURE_NO_DEPRECATE -D_UNICODE -I/home/amonra/.vs/DSS/out/build/DeepSkyStackerKernel/DeepSkyStackerKernel_autogen/include -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/. -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/../DeepSkyStacker -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/../ZClass -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/../LibRaw -I/home/amonra/.vs/DSS/DeepSkyStackerKernel/../Tools -I/home/amonra/.vs/DSS/LibRaw/buildfiles/. -I/home/amonra/.vs/DSS/LibRaw/buildfiles/.. -I/home/amonra/.vs/DSS/ZClass/.  -isystem /opt/Qt/6.8.0/gcc_64/include/QtWidgets -isystem /opt/Qt/6.8.0/gcc_64/include -isystem /opt/Qt/6.8.0/gcc_64/include/QtCore -isystem /opt/Qt/6.8.0/gcc_64/mkspecs/linux-g++ -isystem /opt/Qt/6.8.0/gcc_64/include/QtGui -isystem /opt/Qt/6.8.0/gcc_64/include/QtNetwork -g -std=c++20 -mavx -msse4.2 -fPIC -Winvalid-pch -include /home/amonra/.vs/DSS/out/build/DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/cmake_pch.hxx -MD -MT DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/ColorMultiBitmap.cpp.o -MF DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/ColorMultiBitmap.cpp.o.d -o DeepSkyStackerKernel/CMakeFiles/DeepSkyStackerKernel.dir/ColorMultiBitmap.cpp.o -c /home/amonra/.vs/DSS/DeepSkyStackerKernel/ColorMultiBitmap.cpp
/home/amonra/.vs/DSS/DeepSkyStackerKernel/ColorMultiBitmap.cpp:10:96: error: default argument for template parameter for class enclosing 'virtual std::shared_ptr CColorMultiBitmapT::CreateNewMemoryBitmap() const'
10 | std::shared_ptr CColorMultiBitmapT::CreateNewMemoryBitmap() const
|                                                                                                ^~~~~
/home/amonra/.vs/DSS/DeepSkyStackerKernel/ColorMultiBitmap.cpp:29:99: error: default argument for template parameter for class enclosing 'virtual std::shared_ptr CColorMultiBitmapT::CreateOutputMemoryBitmap() const'
29 | std::shared_ptr CColorMultiBitmapT::CreateOutputMemoryBitmap() const
|                                                                                                   ^~~~~
/home/amonra/.vs/DSS/DeepSkyStackerKernel/ColorMultiBitmap.cpp:35:130: error: default argument for template parameter for class enclosing 'virtual bool CColorMultiBitmapT::SetScanLines(CMemoryBitmap*, int, const std::vector&)'
35 | bool CColorMultiBitmapT::SetScanLines(CMemoryBitmap* pBitmap, int lLine, const std::vector& vScanLines)
|                                                                                               ^
Вот фрагмент файла GreyMultiBitmap.cpp, начинающийся со строки 9:

Код: Выделить всё

template 
std::shared_ptr CGrayMultiBitmapT::CreateNewMemoryBitmap() const
{
std::shared_ptr pBitmap;
if (static_cast(m_pBitmapModel))
{
CBitmapCharacteristics bc;
m_pBitmapModel->GetCharacteristics(bc);
if (bc.m_lNrChannels == 1)
return m_pBitmapModel->Clone(true);
else
{
bc.m_lNrChannels = 1;
return CreateBitmap(bc);
}
}
return std::make_shared();
}
Кто-нибудь может объяснить:
  • Что пытается мне сказать компилятор
    < li>Что мне нужно сделать, чтобы это исправить?


Подробнее здесь: https://stackoverflow.com/questions/791 ... e-g-errors
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»