brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · f96a60b Raw
58 lines · cpp
1// RUN: %check_clang_tidy %s modernize-replace-random-shuffle %t2 3//CHECK-FIXES: #include <random>4 5namespace std {6template <typename T> struct vec_iterator {7  T *ptr;8  vec_iterator operator++(int);9};10 11template <typename T> struct vector {12  typedef vec_iterator<T> iterator;13 14  iterator begin();15  iterator end();16};17 18template <typename FwIt>19void random_shuffle(FwIt begin, FwIt end);20 21template <typename FwIt, typename randomFunc>22void random_shuffle(FwIt begin, FwIt end, randomFunc& randomfunc);23 24template <typename FwIt>25void shuffle(FwIt begin, FwIt end);26} // namespace std27 28// Random Func29int myrandom (int i) { return i;}30 31using namespace std;32 33int main() {34  std::vector<int> vec;35 36  std::random_shuffle(vec.begin(), vec.end());37  // CHECK-MESSAGES: [[@LINE-1]]:3: warning: 'std::random_shuffle' has been removed in C++17; use 'std::shuffle' instead38  // CHECK-FIXES: std::shuffle(vec.begin(), vec.end(), std::mt19937(std::random_device()()));39 40  std::shuffle(vec.begin(), vec.end());41 42  random_shuffle(vec.begin(), vec.end());43  // CHECK-MESSAGES: [[@LINE-1]]:3: warning: 'std::random_shuffle' has been removed in C++17; use 'std::shuffle' instead44  // CHECK-FIXES: shuffle(vec.begin(), vec.end(), std::mt19937(std::random_device()()));45  46  std::random_shuffle(vec.begin(), vec.end(), myrandom);47  // CHECK-MESSAGES: [[@LINE-1]]:3: warning: 'std::random_shuffle' has been removed in C++17; use 'std::shuffle' and an alternative random mechanism instead48  // CHECK-FIXES: std::shuffle(vec.begin(), vec.end(), std::mt19937(std::random_device()()));49 50  random_shuffle(vec.begin(), vec.end(), myrandom);51  // CHECK-MESSAGES: [[@LINE-1]]:3: warning: 'std::random_shuffle' has been removed in C++17; use 'std::shuffle' and an alternative random mechanism instead52  // CHECK-FIXES: shuffle(vec.begin(), vec.end(), std::mt19937(std::random_device()()));53 54  shuffle(vec.begin(), vec.end());55 56  return 0;57}58