Use C++17 (#579)
* Use C++17 * Replace std::random_shuffle with std::shuffle * Add random include
This commit is contained in:
parent
6272965143
commit
160e4570a2
|
@ -1,2 +1 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue