1*4537bda9SLouis Dionne //===----------------------------------------------------------------------===// 2*4537bda9SLouis Dionne // 3*4537bda9SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*4537bda9SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 5*4537bda9SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*4537bda9SLouis Dionne // 7*4537bda9SLouis Dionne //===----------------------------------------------------------------------===// 8*4537bda9SLouis Dionne 9*4537bda9SLouis Dionne // <utility> 10*4537bda9SLouis Dionne 11*4537bda9SLouis Dionne // template <class T1, class T2> struct pair 12*4537bda9SLouis Dionne 13*4537bda9SLouis Dionne // template<size_t I, class T1, class T2> 14*4537bda9SLouis Dionne // const typename tuple_element<I, std::pair<T1, T2> >::type& 15*4537bda9SLouis Dionne // get(const pair<T1, T2>&); 16*4537bda9SLouis Dionne 17*4537bda9SLouis Dionne #include <utility> 18*4537bda9SLouis Dionne f()19*4537bda9SLouis Dionnevoid f() { 20*4537bda9SLouis Dionne typedef std::pair<int, short> P; 21*4537bda9SLouis Dionne const P p(3, 4); 22*4537bda9SLouis Dionne std::get<0>(p) = 5; // expected-error {{cannot assign to return value}} 23*4537bda9SLouis Dionne } 24