/** * 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; } } }