| Server IP : 217.160.0.212 / Your IP : 216.73.216.141 Web Server : Apache System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/include/boost/ |
Upload File : |
/// @file
// Copyright (c) 2009-2016 Vladimir Batov.
// Use, modification and distribution are subject to the Boost Software License,
// Version 1.0. See http://www.boost.org/LICENSE_1_0.txt.
#ifndef BOOST_MAKE_DEFAULT_HPP
#define BOOST_MAKE_DEFAULT_HPP
namespace boost
{
/// @details A considerable number of libraries require an instance of a class
/// provided (storage created and initialized). For example,
/// @code
/// Type result;
/// ...
/// istream >> result;
/// @endcode
/// In generic code that results in the Default Constructibility requirement imposed
/// on every type 'Type' to be used with the respective code. Inevitably, that requirement
/// a) either excludes all the classes that for various reasons do not meet that requirement or
/// b) imposes certain (not necessarily desirable) design/implementation onto respective classes.
///
/// Deployment of boost::make_default() eliminates the Default Constructibility requirement with
/// @code
/// Type result = boost::make_default<Type>();
/// ...
/// istream >> result;
/// @endcode
/// Classes with no default constructor can now be included via a boost::make_default() specialization:
/// @code
/// namespace boost
/// {
/// template<> inline Type make_default<Type>() { return Type(parameters); }
/// }
/// @endcode
template<typename T> T make_default() { return T(); }
}
#endif // BOOST_MAKE_DEFAULT_HPP