| /** | |
| * D header file for interaction with Microsoft C++ <utility> | |
| * | |
| * Copyright: Copyright (c) 2018 D Language Foundation | |
| * License: Distributed under the | |
| * $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0). | |
| * (See accompanying file LICENSE) | |
| * Authors: Manu Evans | |
| * Source: $(DRUNTIMESRC core/stdcpp/utility.d) | |
| */ | |
| module core.stdcpp.utility; | |
| import core.stdcpp.xutility : StdNamespace; | |
| extern(C++, (StdNamespace)): | |
| @nogc: | |
| /** | |
| * D language counterpart to C++ std::pair. | |
| * | |
| * C++ reference: $(LINK2 https://en.cppreference.com/w/cpp/utility/pair) | |
| */ | |
| struct pair(T1, T2) | |
| { | |
| /// | |
| alias first_type = T1; | |
| /// | |
| alias second_type = T2; | |
| /// | |
| T1 first; | |
| /// | |
| T2 second; | |
| // FreeBSD has pair as non-POD so add a contructor | |
| version (FreeBSD) | |
| { | |
| this(T1 t1, T2 t2) inout | |
| { | |
| first = t1; | |
| second = t2; | |
| } | |
| this(ref return scope inout pair!(T1, T2) src) inout | |
| { | |
| first = src.first; | |
| second = src.second; | |
| } | |
| } | |
| } |