<commit_before>#ifndef INCLUDED_SROOK_TYPE_TRAITS_RESULT_OF_HPP
#define INCLUDED_SROOK_TYPE_TRAITS_RESULT_OF_HPP
#if __cplusplus >= 201103L
#include<utility>

namespace srook{
namespace detail{

template<class F,class... Args>
inline auto INVOKE(F&& f,Args&&... args)
-> decltype(std::forward<F>(f)(std::forward<Args>(args)...))
{
	return std::forward<F>(f)(std::forward<Args>(args)...);
}

template<class Base,class T,class Derived>
inline auto INVOKE(T Base::*pmd,Derived&& ref)
-> decltype(std::forward<Derived>(ref).*pmd)
{
	return std::forward<Derived>(ref).*pmd;
}

template<class Base,class T,class Derived,class... Args>
inline auto INVOKE(T Base::*pmf,Derived&& ref,Args&&... args)
-> decltype((std::forward<Derived>(ref).*pmf)(std::forward<Args>(args)...))
{
	return (std::forward<Derived>(ref).*pmf)(std::forward<Args>(args)...);
}

template<class PMD,class Pointer>
inline auto INVOKE(PMD&& pmd,Pointer&& ptr)
-> decltype((*std::forward<Pointer>(ptr)).*std::forward<PMD>(pmd))
{
	return (*std::forward<Pointer>(ptr)).*std::forward<PMD>(pmd);
}

template<class PMF,class Pointer,class... Args>
inline auto INVOKE(PMF&& pmf,Pointer&& ptr,Args&&... args)
-> decltype(((*std::forward<Pointer>(ptr)).*std::forward<PMF>(pmf))(std::forward<Args>(args)...))
{
	return ((*std::forward<Pointer>(ptr)).*std::forward<PMF>(pmf))(std::forward<Args>(args)...);
}

} // namespace detail
#if __cplusplus == 201103L

template<class>
struct resulf_of;

template<class F,class... Param>
struct resulf_of<F(Param...)>{
	using type=decltype(detail::INVOKE(std::declval<F>(),std::declval<Param>()...));
};

#elif __cplusplus == 201403L or __cplusplus == 201703L

namespace detail{

template<typename Void,typename,typename...>
struct invoke_result{};

template<typename F,typename... Args>
struct invoke_result<decltype(void(detail::INVOKE(std::declval<F>(),std::declval<Args>()...))),F,Args...>{
	using type=decltype(detail::INVOKE(std::declval<F>(),std::declval<Args>()...));
};

} // namespace detail

template<class>
struct 
#	if __cplusplus == 201703L
[[deprecated]]
#endif
result_of;


template<class F,class... Param>
struct
#	if __cplusplus == 201703L
[[deprecated]]
#endif
result_of<F(Param...)>:detail::invoke_result<void,F,Param...>{};

template<class F,class... Param>
[[deprecated]]
using result_of_t
#	if __cplusplus == 201703L
[[deprecated]]
#	endif
=typename result_of<F,Param...>::type;

#	if  __cplusplus == 201703L

template<class F,class... Param>
struct invoke_result:detail::invoke_result<void,F,Param...>{};

template<class F,class... Param>
using invoke_result_t=typename invoke_result<F,Param...>::type;

#	endif

#endif
} // namespace srook

#endif
#endif
<commit_msg>small fix<commit_after>#ifndef INCLUDED_SROOK_TYPE_TRAITS_RESULT_OF_HPP
#define INCLUDED_SROOK_TYPE_TRAITS_RESULT_OF_HPP
#if __cplusplus >= 201103L
#include<utility>

namespace srook{
namespace detail{

template<class F,class... Args>
inline auto INVOKE(F&& f,Args&&... args)
-> decltype(std::forward<F>(f)(std::forward<Args>(args)...))
{
	return std::forward<F>(f)(std::forward<Args>(args)...);
}

template<class Base,class T,class Derived>
inline auto INVOKE(T Base::*pmd,Derived&& ref)
-> decltype(std::forward<Derived>(ref).*pmd)
{
	return std::forward<Derived>(ref).*pmd;
}

template<class Base,class T,class Derived,class... Args>
inline auto INVOKE(T Base::*pmf,Derived&& ref,Args&&... args)
-> decltype((std::forward<Derived>(ref).*pmf)(std::forward<Args>(args)...))
{
	return (std::forward<Derived>(ref).*pmf)(std::forward<Args>(args)...);
}

template<class PMD,class Pointer>
inline auto INVOKE(PMD&& pmd,Pointer&& ptr)
-> decltype((*std::forward<Pointer>(ptr)).*std::forward<PMD>(pmd))
{
	return (*std::forward<Pointer>(ptr)).*std::forward<PMD>(pmd);
}

template<class PMF,class Pointer,class... Args>
inline auto INVOKE(PMF&& pmf,Pointer&& ptr,Args&&... args)
-> decltype(((*std::forward<Pointer>(ptr)).*std::forward<PMF>(pmf))(std::forward<Args>(args)...))
{
	return ((*std::forward<Pointer>(ptr)).*std::forward<PMF>(pmf))(std::forward<Args>(args)...);
}

} // namespace detail
#if __cplusplus >= 201103L and __cplusplus < 201402L

template<class>
struct resulf_of;

template<class F,class... Param>
struct resulf_of<F(Param...)>{
	using type=decltype(detail::INVOKE(std::declval<F>(),std::declval<Param>()...));
};

#elif __cplusplus <= 201402L

namespace detail{

template<typename Void,typename,typename...>
struct invoke_result{};

template<typename F,typename... Args>
struct invoke_result<decltype(void(detail::INVOKE(std::declval<F>(),std::declval<Args>()...))),F,Args...>{
	using type=decltype(detail::INVOKE(std::declval<F>(),std::declval<Args>()...));
};

} // namespace detail

template<class>
struct 
#	if __cplusplus <= 201703L
[[deprecated]]
#endif
result_of;


template<class F,class... Param>
struct
#	if __cplusplus == 201703L
[[deprecated]]
#endif
result_of<F(Param...)>:detail::invoke_result<void,F,Param...>{};

template<class F,class... Param>
[[deprecated]]
using result_of_t
#	if __cplusplus == 201703L
[[deprecated]]
#	endif
=typename result_of<F,Param...>::type;

#	if  __cplusplus == 201703L

template<class F,class... Param>
struct invoke_result:detail::invoke_result<void,F,Param...>{};

template<class F,class... Param>
using invoke_result_t=typename invoke_result<F,Param...>::type;

#	endif

#endif
} // namespace srook

#endif
#endif

{'fraction_non_alphanumeric': 0.21018276762402088, 'fraction_numerical': 0.017903767251025736, 'mean_word_length': 6.956973293768546, 'pattern_counts': {'":': 0, '<': 102, '<?xml version=': 0, '>': 112, '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': '340664', 'n_tokens_mistral': 2056, 'n_tokens_neox': 1969, 'n_words': 321}