예제 #1
0
파일: timing.hpp 프로젝트: AntiMoron/YSLib
inline double
once_c(_fCallable&& f, _tParams&&... args)
{
	const std::clock_t cl(std::clock());

	yforward(f)(yforward(args)...);
	return double(clock() - cl) / CLOCKS_PER_SEC;
}
예제 #2
0
파일: timing.hpp 프로젝트: AntiMoron/YSLib
inline double
total_c(size_t n, _fCallable&& f, _tParams&&... args)
{
	const std::clock_t cl(std::clock());

	for(size_t i(0); i != n; ++i)
		yforward(f)(yforward(args)...);
	return double(clock() - cl) / CLOCKS_PER_SEC;
}
예제 #3
0
bool
strict_all_of(_tIn first, _tIn last, _fPred pred)
{
	return std::accumulate(first, last, true,
		[pred](bool b, decltype(*first) val){
		return b && bool(pred(yforward(val)));
	});
}
예제 #4
0
파일: apply.hpp 프로젝트: FrankHB/YSLib
yconstfn _type
make_from_tuple_impl(_tTuple&& t, index_sequence<_vSeq...>)
{
	return _type(std::get<_vSeq>(yforward(t))...);
}
예제 #5
0
파일: cast.hpp 프로젝트: AntiMoron/YSLib
yconstfn std::initializer_list<_tDst>
initializer_cast(_tSrc&&... x)
{
	return {_tDst(yforward(x))...};
}
예제 #6
0
파일: mixin.hpp 프로젝트: AntiMoron/YSLib
	yconstfn
	mixin(variadic_sequence<_vSeq...>, std::tuple<_tParams...>&& tp)
		: _tBases(yforward(std::get<_vSeq>(tp)))...
	{}
예제 #7
0
파일: mixin.hpp 프로젝트: AntiMoron/YSLib
	yconstfn
	mixin(_tParam1&& arg1, _tParam2&& arg2, _tParams&&... args)
		: mixin(std::forward_as_tuple(yforward(arg1), yforward(arg2),
		yforward(args)...))
	{}
예제 #8
0
파일: mixin.hpp 프로젝트: AntiMoron/YSLib
	yconstfn
	mixin(_tParam&& arg)
		: _tBases(yforward(arg))
	{}
예제 #9
0
파일: utility.hpp 프로젝트: jwk000/YSLib
	yconstfn
	boxed_value(_tParam1&& arg1, _tParam2&& arg2, _tParams&&... args)
		: value(yforward(arg1), yforward(arg2), yforward(args)...)
	{}
예제 #10
0
파일: utility.hpp 프로젝트: jwk000/YSLib
	yconstfn
	boxed_value(_tParam&& arg)
		: value(yforward(arg))
	{}