copy.pass.cpp revision 11cd02dfb91661c65134cac258cf5924270e9d2b
10debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski//===----------------------------------------------------------------------===// 20debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// 30debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// The LLVM Compiler Infrastructure 40debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// 50debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// This file is dual licensed under the MIT and the University of Illinois Open 60debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// Source Licenses. See LICENSE.TXT for details. 70debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// 80debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski//===----------------------------------------------------------------------===// 90debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski 100debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// <tuple> 110debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski 120debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// template <class... Types> class tuple; 130debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski 140debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// tuple& operator=(const tuple& u); 150debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski 160debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski// UNSUPPORTED: c++98, c++03 170debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski 180debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski#include <tuple> 1953ab92d89069fb0178ba98eb641a6fc87145543aAdam Lesinski#include <string> 20cf76872a62075abf9008e99ca08413fb70761dc2Amith Yamasani#include <cassert> 21cf76872a62075abf9008e99ca08413fb70761dc2Amith Yamasani 220debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinskiint main() 23cf76872a62075abf9008e99ca08413fb70761dc2Amith Yamasani{ 247f61e96db7c90c1f4418359672aa4656aebee500Adam Lesinski { 250debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski typedef std::tuple<> T; 263516800b611a79339a3c188332d13a26e9086b09Adam Lesinski T t0; 27b0ff32245cb6b51e43dd3ee40b86d683c62de2b9Amith Yamasani T t; 280debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski t = t0; 290debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski } 30b0ff32245cb6b51e43dd3ee40b86d683c62de2b9Amith Yamasani { 31e4a8da8ea241858b52d8122480316db79582c44dAmith Yamasani typedef std::tuple<int> T; 323c153519ca5f2b66b88901374383f943c9d77df7Adam Lesinski T t0(2); 330debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski T t; 340debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski t = t0; 353c153519ca5f2b66b88901374383f943c9d77df7Adam Lesinski assert(std::get<0>(t) == 2); 363c153519ca5f2b66b88901374383f943c9d77df7Adam Lesinski } 37cf76872a62075abf9008e99ca08413fb70761dc2Amith Yamasani { 3853ab92d89069fb0178ba98eb641a6fc87145543aAdam Lesinski typedef std::tuple<int, char> T; 393516800b611a79339a3c188332d13a26e9086b09Adam Lesinski T t0(2, 'a'); 403c153519ca5f2b66b88901374383f943c9d77df7Adam Lesinski T t; 417f61e96db7c90c1f4418359672aa4656aebee500Adam Lesinski t = t0; 42b0ff32245cb6b51e43dd3ee40b86d683c62de2b9Amith Yamasani assert(std::get<0>(t) == 2); 4306bf824628c118fbd5ad6756913d7fd63a6f4ce5Amith Yamasani assert(std::get<1>(t) == 'a'); 44b0ff32245cb6b51e43dd3ee40b86d683c62de2b9Amith Yamasani } 4515e47235c055495ec0ccc24768a6746a960d3a61Amith Yamasani { 460debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski typedef std::tuple<int, char, std::string> T; 470debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski const T t0(2, 'a', "some text"); 480debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski T t; 4906bf824628c118fbd5ad6756913d7fd63a6f4ce5Amith Yamasani t = t0; 500debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski assert(std::get<0>(t) == 2); 510debc9aff4c0cbc28e083a948081d91b0f171319Adam Lesinski assert(std::get<1>(t) == 'a'); 52520d8f2ac6ad2c3cd244e1f710103b3a43a41725Amith Yamasani assert(std::get<2>(t) == "some text"); 537eb599b267d00cbde891c0a87924f2f5086f4497Jeff Hao } 547f61e96db7c90c1f4418359672aa4656aebee500Adam Lesinski} 5506bf824628c118fbd5ad6756913d7fd63a6f4ce5Amith Yamasani