Mercurial > hg > vamp-build-and-test
diff DEPENDENCIES/generic/include/boost/pool/detail/pool_construct.ipp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DEPENDENCIES/generic/include/boost/pool/detail/pool_construct.ipp Tue Aug 05 11:11:38 2014 +0100 @@ -0,0 +1,852 @@ +// 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; +} +