brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 0ce88b3 Raw
56 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <vector>10 11// reference& operator=(bool)12 13#include <cassert>14#include <vector>15 16#include "test_macros.h"17 18TEST_CONSTEXPR_CXX20 bool test() {19  std::vector<bool> vec;20  typedef std::vector<bool>::reference Ref;21  vec.push_back(true);22  vec.push_back(false);23  Ref ref        = vec[0];24  const Ref cref = vec[0];25 26  assert(ref);27  ref = false;28  assert(!vec[0]);29  assert(!vec[1]);30  ref = true;31  assert(vec[0]);32  assert(!vec[1]);33 34  assert(cref);35 36#if TEST_STD_VER > 2037  cref = false;38  assert(!vec[0]);39  assert(!vec[1]);40  cref = true;41  assert(vec[0]);42  assert(!vec[1]);43#endif44 45  return true;46}47 48int main(int, char**) {49  test();50#if TEST_STD_VER > 1751  static_assert(test());52#endif53 54  return 0;55}56