28 #ifndef YB_INC_ystdex_utility_hpp_
29 #define YB_INC_ystdex_utility_hpp_ 1
112 template<
typename _type>
113 typename decay<_type>::type
116 return std::forward<_type>(arg);
126 template<
typename _type>
127 typename qualified_decay<_type>::type
130 return std::forward<_type>(arg);
140 template<
typename _type,
size_t _vN>
146 template<
typename _type,
size_t _vN>
163 template<
typename _fCallable,
typename... _tParams>
181 template<
typename _type,
typename,
typename...>
195 template<
typename _type,
size_t...>
214 template<
typename _tKey,
typename... _tKeys,
typename _fInit,
215 typename... _tParams>
219 typedef decltype(f(
yforward(args)...)) obj_type;
221 auto& p(ystdex::parameterize_static_object<obj_type*, _tKey, _tKeys...>());
224 p =
new obj_type(f(
yforward(args)...));
235 template<
size_t... _vKeys,
typename _fInit,
typename... _tParams>
239 typedef decltype(f(
yforward(args)...)) obj_type;
241 auto& p(ystdex::parameterize_static_object<obj_type*, _vKeys...>());
244 p =
new obj_type(f(
yforward(args)...));
267 template<
class _type,
typename _tCount =
size_t>
274 template<
typename... _tParams>
338 template<
typename _type,
typename _tOnceFlag>
345 template<
typename... _tParams>
388 template<
typename... _tParams>
404 #if !YB_HAS_BUILTIN_NULLPTR