mirror of
https://github.com/ThePhD/sol2.git
synced 2024-03-22 13:10:44 +08:00
Visual C++ introduced a regression in all frontends that were not /std:c++14.
Kind of tired, don't want to file the bug....
This commit is contained in:
parent
b46b106114
commit
9bddce66f8
|
@ -20,8 +20,8 @@
|
||||||
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// This file was generated with a script.
|
// This file was generated with a script.
|
||||||
// Generated 2018-02-24 23:50:10.791344 UTC
|
// Generated 2018-03-01 00:19:34.880908 UTC
|
||||||
// This header was generated with sol v2.19.4 (revision 22c41d9)
|
// This header was generated with sol v2.19.4 (revision b46b106)
|
||||||
// https://github.com/ThePhD/sol2
|
// https://github.com/ThePhD/sol2
|
||||||
|
|
||||||
#ifndef SOL_SINGLE_INCLUDE_HPP
|
#ifndef SOL_SINGLE_INCLUDE_HPP
|
||||||
|
@ -1641,7 +1641,11 @@ namespace sol {
|
||||||
template <typename T>
|
template <typename T>
|
||||||
using is_string_like = any<
|
using is_string_like = any<
|
||||||
is_specialization_of<std::basic_string, meta::unqualified_t<T>>,
|
is_specialization_of<std::basic_string, meta::unqualified_t<T>>,
|
||||||
|
#ifdef SOL_CXX17_FEATURES
|
||||||
|
is_specialization_of<std::basic_string_view, meta::unqualified_t<T>>,
|
||||||
|
#else
|
||||||
is_specialization_of<basic_string_view, meta::unqualified_t<T>>,
|
is_specialization_of<basic_string_view, meta::unqualified_t<T>>,
|
||||||
|
#endif
|
||||||
meta::all<std::is_array<unqualified_t<T>>, meta::any_same<meta::unqualified_t<std::remove_all_extents_t<meta::unqualified_t<T>>>, char, char16_t, char32_t, wchar_t>>
|
meta::all<std::is_array<unqualified_t<T>>, meta::any_same<meta::unqualified_t<std::remove_all_extents_t<meta::unqualified_t<T>>>, char, char16_t, char32_t, wchar_t>>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
@ -5326,20 +5330,23 @@ namespace sol {
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_container<std::initializer_list<T>> : std::false_type {};
|
struct is_container<std::initializer_list<T>> : std::false_type {};
|
||||||
|
|
||||||
template <typename C, typename T, typename A>
|
template <typename T>
|
||||||
struct is_container<std::basic_string<C, T, A>> : std::false_type {};
|
struct is_container<T, std::enable_if_t<meta::is_string_like<meta::unqualified_t<T>>::value>> : std::false_type {};
|
||||||
|
|
||||||
template <typename C, typename T>
|
|
||||||
struct is_container<basic_string_view<C, T>> : std::false_type {};
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_container<T, std::enable_if_t<meta::has_begin_end<meta::unqualified_t<T>>::value
|
struct is_container<T, std::enable_if_t<meta::all<
|
||||||
&& !is_initializer_list<meta::unqualified_t<T>>::value
|
std::is_array<meta::unqualified_t<T>>
|
||||||
&& !meta::is_string_like<meta::unqualified_t<T>>::value
|
, meta::neg<meta::any_same<std::remove_all_extents_t<meta::unqualified_t<T>>, char, wchar_t, char16_t, char32_t>>
|
||||||
|
>::value
|
||||||
>> : std::true_type {};
|
>> : std::true_type {};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_container<T, std::enable_if_t<std::is_array<meta::unqualified_t<T>>::value && !meta::any_same<std::remove_all_extents_t<meta::unqualified_t<T>>, char, wchar_t, char16_t, char32_t>::value>> : std::true_type {};
|
struct is_container<T, std::enable_if_t<meta::all<
|
||||||
|
meta::has_begin_end<meta::unqualified_t<T>>
|
||||||
|
, meta::neg<is_initializer_list<meta::unqualified_t<T>>>
|
||||||
|
, meta::neg<meta::is_string_like<meta::unqualified_t<T>>>
|
||||||
|
>::value
|
||||||
|
>> : std::true_type {};
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
@ -10451,39 +10458,17 @@ namespace stack {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Traits, typename Al>
|
template <typename Ch, typename Traits, typename Al>
|
||||||
struct pusher<std::basic_string<wchar_t, Traits, Al>> {
|
struct pusher<std::basic_string<Ch, Traits, Al>, std::enable_if_t<!std::is_same<Ch, char>::value>> {
|
||||||
static int push(lua_State* L, const std::basic_string<wchar_t, Traits, Al>& wstr) {
|
static int push(lua_State* L, const std::basic_string<Ch, Traits, Al>& wstr) {
|
||||||
return push(L, wstr, wstr.size());
|
return push(L, wstr, wstr.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
static int push(lua_State* L, const std::basic_string<wchar_t, Traits, Al>& wstr, std::size_t sz) {
|
static int push(lua_State* L, const std::basic_string<Ch, Traits, Al>& wstr, std::size_t sz) {
|
||||||
return stack::push(L, wstr.data(), wstr.data() + sz);
|
return stack::push(L, wstr.data(), wstr.data() + sz);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Traits, typename Al>
|
|
||||||
struct pusher<std::basic_string<char16_t, Traits, Al>> {
|
|
||||||
static int push(lua_State* L, const std::basic_string<char16_t, Traits, Al>& u16str) {
|
|
||||||
return push(L, u16str, u16str.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
static int push(lua_State* L, const std::basic_string<char16_t, Traits, Al>& u16str, std::size_t sz) {
|
|
||||||
return stack::push(L, u16str.data(), u16str.data() + sz);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename Traits, typename Al>
|
|
||||||
struct pusher<std::basic_string<char32_t, Traits, Al>> {
|
|
||||||
static int push(lua_State* L, const std::basic_string<char32_t, Traits, Al>& u32str) {
|
|
||||||
return push(L, u32str, u32str.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
static int push(lua_State* L, const std::basic_string<char32_t, Traits, Al>& u32str, std::size_t sz) {
|
|
||||||
return stack::push(L, u32str.data(), u32str.data() + sz);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
struct pusher<std::tuple<Args...>> {
|
struct pusher<std::tuple<Args...>> {
|
||||||
template <std::size_t... I, typename T>
|
template <std::size_t... I, typename T>
|
||||||
|
|
|
@ -20,8 +20,8 @@
|
||||||
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// This file was generated with a script.
|
// This file was generated with a script.
|
||||||
// Generated 2018-02-24 23:50:11.000275 UTC
|
// Generated 2018-03-01 00:19:35.095051 UTC
|
||||||
// This header was generated with sol v2.19.4 (revision 22c41d9)
|
// This header was generated with sol v2.19.4 (revision b46b106)
|
||||||
// https://github.com/ThePhD/sol2
|
// https://github.com/ThePhD/sol2
|
||||||
|
|
||||||
#ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP
|
#ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP
|
||||||
|
|
|
@ -903,39 +903,17 @@ namespace stack {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Traits, typename Al>
|
template <typename Ch, typename Traits, typename Al>
|
||||||
struct pusher<std::basic_string<wchar_t, Traits, Al>> {
|
struct pusher<std::basic_string<Ch, Traits, Al>, std::enable_if_t<!std::is_same<Ch, char>::value>> {
|
||||||
static int push(lua_State* L, const std::basic_string<wchar_t, Traits, Al>& wstr) {
|
static int push(lua_State* L, const std::basic_string<Ch, Traits, Al>& wstr) {
|
||||||
return push(L, wstr, wstr.size());
|
return push(L, wstr, wstr.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
static int push(lua_State* L, const std::basic_string<wchar_t, Traits, Al>& wstr, std::size_t sz) {
|
static int push(lua_State* L, const std::basic_string<Ch, Traits, Al>& wstr, std::size_t sz) {
|
||||||
return stack::push(L, wstr.data(), wstr.data() + sz);
|
return stack::push(L, wstr.data(), wstr.data() + sz);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Traits, typename Al>
|
|
||||||
struct pusher<std::basic_string<char16_t, Traits, Al>> {
|
|
||||||
static int push(lua_State* L, const std::basic_string<char16_t, Traits, Al>& u16str) {
|
|
||||||
return push(L, u16str, u16str.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
static int push(lua_State* L, const std::basic_string<char16_t, Traits, Al>& u16str, std::size_t sz) {
|
|
||||||
return stack::push(L, u16str.data(), u16str.data() + sz);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename Traits, typename Al>
|
|
||||||
struct pusher<std::basic_string<char32_t, Traits, Al>> {
|
|
||||||
static int push(lua_State* L, const std::basic_string<char32_t, Traits, Al>& u32str) {
|
|
||||||
return push(L, u32str, u32str.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
static int push(lua_State* L, const std::basic_string<char32_t, Traits, Al>& u32str, std::size_t sz) {
|
|
||||||
return stack::push(L, u32str.data(), u32str.data() + sz);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
struct pusher<std::tuple<Args...>> {
|
struct pusher<std::tuple<Args...>> {
|
||||||
template <std::size_t... I, typename T>
|
template <std::size_t... I, typename T>
|
||||||
|
|
|
@ -555,7 +555,11 @@ namespace sol {
|
||||||
template <typename T>
|
template <typename T>
|
||||||
using is_string_like = any<
|
using is_string_like = any<
|
||||||
is_specialization_of<std::basic_string, meta::unqualified_t<T>>,
|
is_specialization_of<std::basic_string, meta::unqualified_t<T>>,
|
||||||
|
#ifdef SOL_CXX17_FEATURES
|
||||||
|
is_specialization_of<std::basic_string_view, meta::unqualified_t<T>>,
|
||||||
|
#else
|
||||||
is_specialization_of<basic_string_view, meta::unqualified_t<T>>,
|
is_specialization_of<basic_string_view, meta::unqualified_t<T>>,
|
||||||
|
#endif
|
||||||
meta::all<std::is_array<unqualified_t<T>>, meta::any_same<meta::unqualified_t<std::remove_all_extents_t<meta::unqualified_t<T>>>, char, char16_t, char32_t, wchar_t>>
|
meta::all<std::is_array<unqualified_t<T>>, meta::any_same<meta::unqualified_t<std::remove_all_extents_t<meta::unqualified_t<T>>>, char, char16_t, char32_t, wchar_t>>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
|
|
@ -859,20 +859,23 @@ namespace sol {
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_container<std::initializer_list<T>> : std::false_type {};
|
struct is_container<std::initializer_list<T>> : std::false_type {};
|
||||||
|
|
||||||
template <typename C, typename T, typename A>
|
template <typename T>
|
||||||
struct is_container<std::basic_string<C, T, A>> : std::false_type {};
|
struct is_container<T, std::enable_if_t<meta::is_string_like<meta::unqualified_t<T>>::value>> : std::false_type {};
|
||||||
|
|
||||||
template <typename C, typename T>
|
|
||||||
struct is_container<basic_string_view<C, T>> : std::false_type {};
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_container<T, std::enable_if_t<meta::has_begin_end<meta::unqualified_t<T>>::value
|
struct is_container<T, std::enable_if_t<meta::all<
|
||||||
&& !is_initializer_list<meta::unqualified_t<T>>::value
|
std::is_array<meta::unqualified_t<T>>
|
||||||
&& !meta::is_string_like<meta::unqualified_t<T>>::value
|
, meta::neg<meta::any_same<std::remove_all_extents_t<meta::unqualified_t<T>>, char, wchar_t, char16_t, char32_t>>
|
||||||
|
>::value
|
||||||
>> : std::true_type {};
|
>> : std::true_type {};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_container<T, std::enable_if_t<std::is_array<meta::unqualified_t<T>>::value && !meta::any_same<std::remove_all_extents_t<meta::unqualified_t<T>>, char, wchar_t, char16_t, char32_t>::value>> : std::true_type {};
|
struct is_container<T, std::enable_if_t<meta::all<
|
||||||
|
meta::has_begin_end<meta::unqualified_t<T>>
|
||||||
|
, meta::neg<is_initializer_list<meta::unqualified_t<T>>>
|
||||||
|
, meta::neg<meta::is_string_like<meta::unqualified_t<T>>>
|
||||||
|
>::value
|
||||||
|
>> : std::true_type {};
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user