• P
    C++20 compatibility (#6697) · 31da5e34
    Peter Dillinger 提交于
    Summary:
    Based on https://github.com/facebook/rocksdb/issues/6648 (CLA Signed), but heavily modified / extended:
    
    * Implicit capture of this via [=] deprecated in C++20, and [=,this] not standard before C++20 -> now using explicit capture lists
    * Implicit copy operator deprecated in gcc 9 -> add explicit '= default' definition
    * std::random_shuffle deprecated in C++17 and removed in C++20 -> migrated to a replacement in RocksDB random.h API
    * Add the ability to build with different std version though -DCMAKE_CXX_STANDARD=11/14/17/20 on the cmake command line
    * Minimal rebuild flag of MSVC is deprecated and is forbidden with /std:c++latest (C++20)
    * Added MSVC 2019 C++11 & MSVC 2019 C++20 in AppVeyor
    * Added GCC 9 C++11 & GCC9 C++20 in Travis
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/6697
    
    Test Plan: make check and CI
    
    Reviewed By: cheng-chang
    
    Differential Revision: D21020318
    
    Pulled By: pdillinger
    
    fbshipit-source-id: 12311be5dbd8675a0e2c817f7ec50fa11c18ab91
    31da5e34
block_based_table_reader.cc 127.3 KB