4 #ifndef LEXY_DETAIL_STD_HPP_INCLUDED
5 #define LEXY_DETAIL_STD_HPP_INCLUDED
10 #if defined(__GLIBCXX__)
14 _GLIBCXX_BEGIN_NAMESPACE_VERSION
15 struct forward_iterator_tag;
16 struct bidirectional_iterator_tag;
17 _GLIBCXX_END_NAMESPACE_VERSION
20 #elif defined(_LIBCPP_VERSION)
22 _LIBCPP_BEGIN_NAMESPACE_STD
23 struct forward_iterator_tag;
24 struct bidirectional_iterator_tag;
25 _LIBCPP_END_NAMESPACE_STD
33 struct forward_iterator_tag;
34 struct bidirectional_iterator_tag;
40 #if !LEXY_HAS_CONSTEXPR_DTOR
45 template <
typename T,
typename... Args>
48 return ::new ((
void*)ptr) T(
LEXY_FWD(args)...);
52 #elif defined(_MSC_VER)
57 template <
typename T,
typename... Args>
60 # if defined(_MSVC_CONSTEXPR)
63 return ::new ((
void*)ptr) T(
LEXY_FWD(args)...);
71 struct _construct_at_tag
79 template <
typename T,
typename... Args>
80 constexpr T*
construct_at(lexy::_detail::_construct_at_tag, T* ptr, Args&&... args)
82 return ::new ((
void*)ptr) T(
LEXY_FWD(args)...);
88 template <
typename T,
typename... Args>
97 #endif // LEXY_DETAIL_STD_HPP_INCLUDED