Upgrade to C++20 (#7554)
* Compile in C++20 mode
* Fix implicit lambda captures of `this` by `[=]`
Those implicit captures were deprecated in C++20
* Silence MSVC atomic std::shared_ptr warning
Unfortunately std::atomic<std::shared_ptr> (P0718R2) is not supported by
GCC until GCC 12 and still is not supported by Clang or Apple Clang, so
it looks like we will continue using std::atomic_load for the time being
* Use C++20 in RemoteVstPlugin
* Simplification
* Add comment
* Fix bitwise operations between different enumeration types
* Revert "Fix bitwise operations between different enumeration types"
This reverts commit d45792cd72.
* Use a helper function to combine keys and modifiers
* Remove AnalyzeTemporaryDtors from .clang-tidy
AnalyzeTemporaryDtors was deprecated in clang-tidy 16 and fully removed
in clang-tidy 18
* Use C++20 in .clang-format
* Use bitwise OR
Prevents issues if any enum flags in `args` have bits in common
This commit is contained in:
@@ -2,8 +2,8 @@ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
SET(CMAKE_DEBUG_POSTFIX "")
|
||||
|
||||
# Enable C++17
|
||||
SET(CMAKE_CXX_STANDARD 17)
|
||||
# Enable C++20
|
||||
SET(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
IF(LMMS_BUILD_APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
|
||||
@@ -341,7 +341,6 @@ SaControlsDialog::SaControlsDialog(SaControls *controls, SaProcessor *processor)
|
||||
m_waterfall = new SaWaterfallView(controls, processor, this);
|
||||
display_splitter->addWidget(m_waterfall);
|
||||
m_waterfall->setVisible(m_controls->m_waterfallModel.value());
|
||||
connect(&controls->m_waterfallModel, &BoolModel::dataChanged, [=] {m_waterfall->updateVisibility();});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -54,6 +54,7 @@ SaWaterfallView::SaWaterfallView(SaControls *controls, SaProcessor *processor, Q
|
||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
|
||||
connect(getGUI()->mainWindow(), SIGNAL(periodicUpdate()), this, SLOT(periodicUpdate()));
|
||||
connect(&controls->m_waterfallModel, &BoolModel::dataChanged, this, &SaWaterfallView::updateVisibility);
|
||||
|
||||
m_displayTop = 1;
|
||||
m_displayBottom = height() -2;
|
||||
|
||||
@@ -47,7 +47,7 @@ NineButtonSelector::NineButtonSelector(std::array<QPixmap, 18> onOffIcons, int d
|
||||
m_buttons[i]->setActiveGraphic(onOffIcons[i * 2]);
|
||||
m_buttons[i]->setInactiveGraphic(onOffIcons[(i * 2) + 1]);
|
||||
m_buttons[i]->setChecked(false);
|
||||
connect(m_buttons[i].get(), &PixmapButton::clicked, this, [=](){ this->buttonClicked(i); });
|
||||
connect(m_buttons[i].get(), &PixmapButton::clicked, this, [=, this](){ buttonClicked(i); });
|
||||
}
|
||||
|
||||
m_lastBtn = m_buttons[defaultButton].get();
|
||||
|
||||
@@ -6,7 +6,7 @@ endif()
|
||||
|
||||
project(RemoteVstPlugin
|
||||
LANGUAGES CXX)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
include(CheckCXXPreprocessor)
|
||||
include(CheckCXXSourceCompiles)
|
||||
@@ -73,7 +73,7 @@ if(MSVC)
|
||||
endif()
|
||||
|
||||
if(IS_MINGW)
|
||||
SET(CMAKE_REQUIRED_FLAGS "-std=c++17")
|
||||
SET(CMAKE_REQUIRED_FLAGS "-std=c++20")
|
||||
endif()
|
||||
|
||||
if(LMMS_BUILD_WIN32)
|
||||
|
||||
Reference in New Issue
Block a user