brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · d6dc258 Raw
55 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s2// expected-no-diagnostics3 4// PR10087: Make sure that we don't conflate exception specifications5// from different functions in the canonical type system.6namespace std7{8 9template <class _Tp> _Tp&& declval() noexcept;10 11template <class _Tp, class... _Args>12struct _is_nothrow_constructible13{14  static const bool value = noexcept(_Tp(declval<_Args>()...));15};16 17template<class, class _Traits, class _Allocator>18class basic_string19{20public:21  typedef typename _Traits::char_type value_type;22  typedef _Allocator allocator_type;23 24  basic_string()25      noexcept(_is_nothrow_constructible<allocator_type>::value);26};27 28template <class, class, class _Compare>29struct __map_value_compare30{31public:32  __map_value_compare()33      noexcept(_is_nothrow_constructible<_Compare>::value);34};35 36struct less37{38};39 40struct map41{42  typedef __map_value_compare<int, short, less> __vc;43  __vc vc_;44};45 46 47template<class T, class _Traits, class _Allocator>48basic_string<T, _Traits, _Allocator>::basic_string() noexcept(_is_nothrow_constructible<allocator_type>::value) {}49 50template <class T, class Value, class _Compare>51__map_value_compare<T, Value, _Compare>::__map_value_compare()52  noexcept(_is_nothrow_constructible<_Compare>::value) {}53 54}  // std55