853 lines
24 KiB
C++
853 lines
24 KiB
C++
// Copyright (C) 2000 Stephen Cleary
|
|
//
|
|
// Distributed under the Boost Software License, Version 1.0. (See accompany-
|
|
// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
//
|
|
// See http://www.boost.org for updates, documentation, and revision history.
|
|
|
|
// This file was AUTOMATICALLY GENERATED from "stdin"
|
|
// Do NOT include directly!
|
|
// Do NOT edit!
|
|
|
|
template <typename T0>
|
|
element_type * construct(T0 & a0)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0>
|
|
element_type * construct(const T0 & a0)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0>
|
|
element_type * construct(volatile T0 & a0)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0>
|
|
element_type * construct(const volatile T0 & a0)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(T0 & a0, T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(const T0 & a0, T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(volatile T0 & a0, T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(const volatile T0 & a0, T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(T0 & a0, const T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(const T0 & a0, const T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(volatile T0 & a0, const T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(const volatile T0 & a0, const T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(T0 & a0, volatile T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(const T0 & a0, volatile T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(volatile T0 & a0, volatile T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(const volatile T0 & a0, volatile T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(T0 & a0, const volatile T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(const T0 & a0, const volatile T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(volatile T0 & a0, const volatile T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1>
|
|
element_type * construct(const volatile T0 & a0, const volatile T1 & a1)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, const T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, const T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, const T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, const T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, volatile T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, volatile T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, volatile T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, volatile T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, const volatile T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, const volatile T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, const volatile T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, const volatile T1 & a1, T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, const T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, const T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, const T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, const T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, volatile T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, volatile T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, volatile T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, volatile T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, const volatile T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, const volatile T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, const volatile T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, const volatile T1 & a1, const T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, const T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, const T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, const T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, const T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, volatile T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, volatile T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, volatile T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, volatile T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, const volatile T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, const volatile T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, const volatile T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, const volatile T1 & a1, volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, const T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, const T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, const T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, const T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, volatile T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, volatile T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, volatile T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, volatile T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(T0 & a0, const volatile T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const T0 & a0, const volatile T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(volatile T0 & a0, const volatile T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
template <typename T0, typename T1, typename T2>
|
|
element_type * construct(const volatile T0 & a0, const volatile T1 & a1, const volatile T2 & a2)
|
|
{
|
|
element_type * const ret = (malloc)();
|
|
if (ret == 0)
|
|
return ret;
|
|
try { new (ret) element_type(a0, a1, a2); }
|
|
catch (...) { (free)(ret); throw; }
|
|
return ret;
|
|
}
|
|
|