<commit_before>#ifndef _FALCON_UTILITY_MAKER_HPP
#define _FALCON_UTILITY_MAKER_HPP

#ifdef __GXX_EXPERIMENTAL_CXX0X__
# include <utility>
# include <falcon/utility/detail/construct_category.hpp>
#endif
#include <falcon/c++/constexpr.hpp>

namespace falcon {

#ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _T, typename _Tag = typename ::falcon::detail::construct_category<_T>::type>
struct __delegate_maker
{
	template<typename... _Args>
	constexpr static _T __impl(_Args&&... args)
	{ return _T{std::forward<_Args>(args)...}; }
};

template<typename _T>
struct __delegate_maker<_T, ::falcon::detail::initilizer_list_construct_tag>
{
	template<typename... _Args>
	constexpr static _T __impl(_Args&&... args)
	{ return _T{{std::forward<_Args>(args)...}}; }
};

///wrapper of construct object
template <template<typename...> class _Template>
struct late_maker
{
	constexpr late_maker()
	{}

	template<template<typename...> class _UTemplate>
	constexpr late_maker(const late_maker<_UTemplate>&)
	{}

	constexpr _Template<> operator()() const
	{ return _Template<>(); }

	template<typename... _Args>
	constexpr _Template<_Args...> operator()(_Args&&... args) const
	{ return __delegate_maker<_Template<_Args...>>::__impl(args...); }
};
#endif

///wrapper of construct object
template<typename _Tp>
struct maker
{
	CPP_CONSTEXPR maker()
	{}

	template<typename _Up>
	CPP_CONSTEXPR maker(const maker<_Up>&)
	{}

	CPP_CONSTEXPR _Tp operator()() const
	{ return _Tp(); }

	CPP_CONSTEXPR _Tp operator()(const _Tp& v) const
	{ return _Tp(v); }

#ifdef __GXX_EXPERIMENTAL_CXX0X__
	template<typename... _Args>
	constexpr _Tp operator()(_Args&&... args) const
	{ return __delegate_maker<_Tp>::__impl(args...); }
#else
	template<typename _U>
	_Tp operator()(const _U& v) const
	{ return _Tp(v); }
#endif
};

}

#endif
<commit_msg>fixing bug in maker<><commit_after>#ifndef _FALCON_UTILITY_MAKER_HPP
#define _FALCON_UTILITY_MAKER_HPP

#ifdef __GXX_EXPERIMENTAL_CXX0X__
# include <utility>
# include <falcon/utility/detail/construct_category.hpp>
#endif
#include <falcon/c++/constexpr.hpp>

namespace falcon {

#ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _T, typename _Tag = typename ::falcon::detail::construct_category<_T>::type>
struct __delegate_maker
{
	template<typename... _Args>
	constexpr static _T __impl(_Args&&... args)
	{ return _T{std::forward<_Args>(args)...}; }
};

template<typename _T>
struct __delegate_maker<_T, ::falcon::detail::initilizer_list_construct_tag>
{
	template<typename... _Args>
	constexpr static _T __impl(_Args&&... args)
	{ return _T{{std::forward<_Args>(args)...}}; }
};

///wrapper of construct object
template <template<typename...> class _Template>
struct late_maker
{
	constexpr late_maker()
	{}

	template<template<typename...> class _UTemplate>
	constexpr late_maker(const late_maker<_UTemplate>&)
	{}

	template<typename... _Args>
	constexpr _Template<_Args...> operator()(_Args&&... args) const
	{ return __delegate_maker<_Template<_Args...>>::__impl(std::forward<_Args>(args)...); }
};
#endif

///wrapper of construct object
template<typename _Tp>
struct maker
{
	typedef _Tp result_type;

	CPP_CONSTEXPR maker()
	{}

	template<typename _Up>
	CPP_CONSTEXPR maker(const maker<_Up>&)
	{}

	CPP_CONSTEXPR _Tp operator()() const
	{ return _Tp(); }

	CPP_CONSTEXPR _Tp operator()(const _Tp& v) const
	{ return _Tp(v); }

#ifdef __GXX_EXPERIMENTAL_CXX0X__
	template<typename... _Args>
	constexpr _Tp operator()(_Args&&... args) const
	{ return __delegate_maker<_Tp>::__impl(std::forward<_Args>(args)...); }
#else
	template<typename _U>
	_Tp operator()(const _U& v) const
	{ return _Tp(v); }
#endif
};

}

#endif

{'fraction_non_alphanumeric': 0.1518224171005755, 'fraction_numerical': 0.001644286105782406, 'mean_word_length': 5.684981684981685, 'pattern_counts': {'":': 0, '<': 60, '<?xml version=': 0, '>': 60, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7452800', 'n_tokens_mistral': 1373, 'n_tokens_neox': 1291, 'n_words': 268}