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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 6 deletions

View File

@ -1,2 +1 @@
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)
endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
list(APPEND COMPILE_OPTIONS
$<$<COMPILE_LANGUAGE:C>:--std=c99>
$<$<COMPILE_LANGUAGE:CXX>:--std=c++11>
$<$<COMPILE_LANGUAGE:CXX>:--std=c++17>
-U__STRICT_ANSI__
-Wall
-Wextra
@ -375,7 +375,7 @@ endif(USE_BUNDLE AND NOT USE_BUNDLE_DIR)
# Check that we have sqlite3 with FTS5
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})
check_cxx_source_runs("
#include <QSqlDatabase>

View File

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