~ubuntu-branches/ubuntu/trusty/libc++/trusty

« back to all changes in this revision

Viewing changes to libcxx/test/utilities/utility/pairs/pairs.spec/make_pair.pass.cpp

  • Committer: Package Import Robot
  • Author(s): Andrej Belym
  • Date: 2012-06-02 19:25:47 UTC
  • Revision ID: package-import@ubuntu.com-20120602192547-b6ta950a8ckc9um2
Tags: upstream-1.0~svn160132
ImportĀ upstreamĀ versionĀ 1.0~svn160132

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//===----------------------------------------------------------------------===//
 
2
//
 
3
//                     The LLVM Compiler Infrastructure
 
4
//
 
5
// This file is dual licensed under the MIT and the University of Illinois Open
 
6
// Source Licenses. See LICENSE.TXT for details.
 
7
//
 
8
//===----------------------------------------------------------------------===//
 
9
 
 
10
// <utility>
 
11
 
 
12
// template <class T1, class T2> pair<V1, V2> make_pair(T1&&, T2&&);
 
13
 
 
14
#include <utility>
 
15
#include <memory>
 
16
#include <cassert>
 
17
 
 
18
int main()
 
19
{
 
20
    {
 
21
        typedef std::pair<int, short> P1;
 
22
        P1 p1 = std::make_pair(3, 4);
 
23
        assert(p1.first == 3);
 
24
        assert(p1.second == 4);
 
25
    }
 
26
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
27
    {
 
28
        typedef std::pair<std::unique_ptr<int>, short> P1;
 
29
        P1 p1 = std::make_pair(std::unique_ptr<int>(new int(3)), 4);
 
30
        assert(*p1.first == 3);
 
31
        assert(p1.second == 4);
 
32
    }
 
33
    {
 
34
        typedef std::pair<std::unique_ptr<int>, short> P1;
 
35
        P1 p1 = std::make_pair(nullptr, 4);
 
36
        assert(p1.first == nullptr);
 
37
        assert(p1.second == 4);
 
38
    }
 
39
#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
40
}