1111#error "embind requires -std=c++17 or newer"
1212#endif
1313
14+ #include < emscripten/em_asm.h>
15+ #include < emscripten/val.h>
16+ #include < emscripten/wire.h>
17+
1418#include < cassert>
1519#include < cstddef>
1620#include < functional>
1721#include < map>
22+ #include < optional>
1823#include < string>
1924#include < type_traits>
2025#include < vector>
21- #include < optional>
22-
23- #include < emscripten/em_asm.h>
24- #include < emscripten/val.h>
25- #include < emscripten/wire.h>
2626
2727#if __has_feature(leak_sanitizer) || __has_feature(address_sanitizer)
2828#include < sanitizer/lsan_interface.h>
@@ -434,7 +434,7 @@ template<typename ReturnType, typename... Args, typename... Policies>
434434void function (const char * name, ReturnType (*fn)(Args...), Policies...) {
435435 using namespace internal ;
436436 typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args;
437- using ReturnPolicy = GetReturnValuePolicy<ReturnType, Policies...>::tag;
437+ using ReturnPolicy = typename GetReturnValuePolicy<ReturnType, Policies...>::tag;
438438 auto invoke = Invoker<ReturnPolicy, ReturnType, Args...>::invoke;
439439 _embind_register_function (
440440 name,
@@ -1295,7 +1295,7 @@ struct RegisterClassMethod<ReturnType (ClassType::*)(Args...)> {
12951295 template <typename CT, typename ... Policies>
12961296 static void invoke (const char * methodName,
12971297 ReturnType (ClassType::*memberFunction)(Args...)) {
1298- using ReturnPolicy = GetReturnValuePolicy<ReturnType, Policies...>::tag;
1298+ using ReturnPolicy = typename GetReturnValuePolicy<ReturnType, Policies...>::tag;
12991299 auto invoke = MethodInvoker<ReturnPolicy, decltype (memberFunction), ReturnType, ClassType*, Args...>::invoke;
13001300
13011301 typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, AllowedRawPointer<ClassType>, Args...> args;
@@ -1325,7 +1325,7 @@ struct RegisterClassMethod<ReturnType (ClassType::*)(Args...) const> {
13251325 template <typename CT, typename ... Policies>
13261326 static void invoke (const char * methodName,
13271327 ReturnType (ClassType::*memberFunction)(Args...) const ) {
1328- using ReturnPolicy = GetReturnValuePolicy<ReturnType, Policies...>::tag;
1328+ using ReturnPolicy = typename GetReturnValuePolicy<ReturnType, Policies...>::tag;
13291329 auto invoke = MethodInvoker<ReturnPolicy, decltype (memberFunction), ReturnType, const ClassType*, Args...>::invoke;
13301330
13311331 typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, AllowedRawPointer<const ClassType>, Args...> args;
@@ -1356,7 +1356,7 @@ struct RegisterClassMethod<ReturnType (*)(ThisType, Args...)> {
13561356 static void invoke (const char * methodName,
13571357 ReturnType (*function)(ThisType, Args...)) {
13581358 typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, ThisType, Args...> args;
1359- using ReturnPolicy = GetReturnValuePolicy<ReturnType, Policies...>::tag;
1359+ using ReturnPolicy = typename GetReturnValuePolicy<ReturnType, Policies...>::tag;
13601360 auto invoke = FunctionInvoker<ReturnPolicy, decltype (function), ReturnType, ThisType, Args...>::invoke;
13611361 _embind_register_class_function (
13621362 TypeID<ClassType>::get (),
@@ -1385,7 +1385,7 @@ struct RegisterClassMethod<std::function<ReturnType (ThisType, Args...)>> {
13851385 static void invoke (const char * methodName,
13861386 std::function<ReturnType (ThisType, Args...)> function) {
13871387 typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, ThisType, Args...> args;
1388- using ReturnPolicy = GetReturnValuePolicy<ReturnType, Policies...>::tag;
1388+ using ReturnPolicy = typename GetReturnValuePolicy<ReturnType, Policies...>::tag;
13891389 auto invoke = FunctorInvoker<ReturnPolicy, decltype (function), ReturnType, ThisType, Args...>::invoke;
13901390 _embind_register_class_function (
13911391 TypeID<ClassType>::get (),
@@ -1408,7 +1408,7 @@ struct RegisterClassMethod<FunctionTag<Callable, ReturnType (ThisType, Args...)>
14081408 static void invoke (const char * methodName,
14091409 Callable& callable) {
14101410 typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, ThisType, Args...> args;
1411- using ReturnPolicy = GetReturnValuePolicy<ReturnType, Policies...>::tag;
1411+ using ReturnPolicy = typename GetReturnValuePolicy<ReturnType, Policies...>::tag;
14121412 auto invoke = FunctorInvoker<ReturnPolicy, decltype (callable), ReturnType, ThisType, Args...>::invoke;
14131413 _embind_register_class_function (
14141414 TypeID<ClassType>::get (),
@@ -1546,7 +1546,7 @@ class class_ {
15461546 smart_ptr<SmartPtr>(smartPtrName);
15471547
15481548 typename WithPolicies<Policies...>::template ArgTypeList<SmartPtr, Args...> args;
1549- using ReturnPolicy = GetReturnValuePolicy<SmartPtr, return_value_policy::take_ownership>::tag;
1549+ using ReturnPolicy = typename GetReturnValuePolicy<SmartPtr, return_value_policy::take_ownership>::tag;
15501550 auto invoke = &Invoker<ReturnPolicy, SmartPtr, Args...>::invoke;
15511551 _embind_register_class_constructor (
15521552 TypeID<ClassType>::get (),
@@ -1646,7 +1646,7 @@ class class_ {
16461646 std::conjunction<internal::isPolicy<Policies>...>::value>::type>
16471647 EMSCRIPTEN_ALWAYS_INLINE const class_& property (const char * fieldName, const FieldType ClassType::*field, Policies...) const {
16481648 using namespace internal ;
1649- using ReturnPolicy = GetReturnValuePolicy<FieldType, Policies...>::tag;
1649+ using ReturnPolicy = typename GetReturnValuePolicy<FieldType, Policies...>::tag;
16501650 typename WithPolicies<Policies...>::template ArgTypeList<FieldType> returnType;
16511651
16521652 auto getter = &MemberAccess<ClassType, FieldType>::template getWire<ClassType, ReturnPolicy>;
@@ -1674,7 +1674,7 @@ class class_ {
16741674 std::conjunction<internal::isPolicy<Policies>...>::value>::type>
16751675 EMSCRIPTEN_ALWAYS_INLINE const class_& property (const char * fieldName, FieldType ClassType::*field, Policies...) const {
16761676 using namespace internal ;
1677- using ReturnPolicy = GetReturnValuePolicy<FieldType, Policies...>::tag;
1677+ using ReturnPolicy = typename GetReturnValuePolicy<FieldType, Policies...>::tag;
16781678 typename WithPolicies<Policies...>::template ArgTypeList<FieldType> returnType;
16791679
16801680 auto getter = &MemberAccess<ClassType, FieldType>::template getWire<ClassType, ReturnPolicy>;
@@ -1708,7 +1708,7 @@ class class_ {
17081708 typename std::conditional<std::is_same<PropertyType, internal::DeduceArgumentsTag>::value,
17091709 Getter,
17101710 FunctionTag<Getter, PropertyType>>::type> GP;
1711- using ReturnPolicy = GetReturnValuePolicy<typename GP::ReturnType, Policies...>::tag;
1711+ using ReturnPolicy = typename GetReturnValuePolicy<typename GP::ReturnType, Policies...>::tag;
17121712 auto gter = &GP::template get<ClassType, ReturnPolicy>;
17131713 typename WithPolicies<Policies...>::template ArgTypeList<typename GP::ReturnType> returnType;
17141714 _embind_register_class_property (
@@ -1747,7 +1747,7 @@ class class_ {
17471747 FunctionTag<Setter, PropertyType>>::type> SP;
17481748
17491749
1750- using ReturnPolicy = GetReturnValuePolicy<typename GP::ReturnType, Policies...>::tag;
1750+ using ReturnPolicy = typename GetReturnValuePolicy<typename GP::ReturnType, Policies...>::tag;
17511751 auto gter = &GP::template get<ClassType, ReturnPolicy>;
17521752 auto ster = &SP::template set<ClassType>;
17531753
@@ -1776,7 +1776,7 @@ class class_ {
17761776 using namespace internal ;
17771777
17781778 typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args;
1779- using ReturnPolicy = GetReturnValuePolicy<ReturnType, Policies...>::tag;
1779+ using ReturnPolicy = typename GetReturnValuePolicy<ReturnType, Policies...>::tag;
17801780 auto invoke = internal::Invoker<ReturnPolicy, ReturnType, Args...>::invoke;
17811781 _embind_register_class_class_function (
17821782 TypeID<ClassType>::get (),
0 commit comments