Use C++17 (#579)

* Use C++17

* Replace std::random_shuffle with std::shuffle

* Add random include
This commit is contained in:
Jonas Kvinge
2020-11-05 22:28:49 +01:00
committed by GitHub
parent 6272965143
commit 160e4570a2
3 changed files with 9 additions and 6 deletions

View File

@@ -1,2 +1 @@
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
set(CMAKE_CXX_STANDARD 11)

View File

@@ -29,12 +29,12 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
set(OPENBSD ON) set(OPENBSD ON)
endif() endif()
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
list(APPEND COMPILE_OPTIONS list(APPEND COMPILE_OPTIONS
$<$<COMPILE_LANGUAGE:C>:--std=c99> $<$<COMPILE_LANGUAGE:C>:--std=c99>
$<$<COMPILE_LANGUAGE:CXX>:--std=c++11> $<$<COMPILE_LANGUAGE:CXX>:--std=c++17>
-U__STRICT_ANSI__ -U__STRICT_ANSI__
-Wall -Wall
-Wextra -Wextra
@@ -375,7 +375,7 @@ endif(USE_BUNDLE AND NOT USE_BUNDLE_DIR)
# Check that we have sqlite3 with FTS5 # Check that we have sqlite3 with FTS5
if(NOT CMAKE_CROSSCOMPILING) if(NOT CMAKE_CROSSCOMPILING)
set(CMAKE_REQUIRED_FLAGS "--std=c++11") set(CMAKE_REQUIRED_FLAGS "--std=c++17")
set(CMAKE_REQUIRED_LIBRARIES ${QtCore_LIBRARIES} ${QtSql_LIBRARIES}) set(CMAKE_REQUIRED_LIBRARIES ${QtCore_LIBRARIES} ${QtSql_LIBRARIES})
check_cxx_source_runs(" check_cxx_source_runs("
#include <QSqlDatabase> #include <QSqlDatabase>

View File

@@ -29,6 +29,7 @@
#include <iterator> #include <iterator>
#include <type_traits> #include <type_traits>
#include <unordered_map> #include <unordered_map>
#include <random>
#include <QtGlobal> #include <QtGlobal>
#include <QObject> #include <QObject>
@@ -1819,6 +1820,9 @@ void Playlist::ReshuffleIndices() {
if (current_virtual_index_ != -1) if (current_virtual_index_ != -1)
std::advance(begin, current_virtual_index_ + 1); std::advance(begin, current_virtual_index_ + 1);
std::random_device rd;
std::mt19937 g(rd());
switch (playlist_sequence_->shuffle_mode()) { switch (playlist_sequence_->shuffle_mode()) {
case PlaylistSequence::Shuffle_Off: case PlaylistSequence::Shuffle_Off:
// Handled above. // Handled above.
@@ -1826,7 +1830,7 @@ void Playlist::ReshuffleIndices() {
case PlaylistSequence::Shuffle_All: case PlaylistSequence::Shuffle_All:
case PlaylistSequence::Shuffle_InsideAlbum: case PlaylistSequence::Shuffle_InsideAlbum:
std::random_shuffle(begin, end); std::shuffle(begin, end, g);
break; break;
case PlaylistSequence::Shuffle_Albums: { case PlaylistSequence::Shuffle_Albums: {
@@ -1843,7 +1847,7 @@ void Playlist::ReshuffleIndices() {
// Shuffle them // Shuffle them
QStringList shuffled_album_keys = album_key_set.values(); QStringList shuffled_album_keys = album_key_set.values();
std::random_shuffle(shuffled_album_keys.begin(), shuffled_album_keys.end()); std::shuffle(shuffled_album_keys.begin(), shuffled_album_keys.end(), g);
// If the user is currently playing a song, force its album to be first // If the user is currently playing a song, force its album to be first
// Or if the song was not playing but it was selected, force its album to be first. // Or if the song was not playing but it was selected, force its album to be first.