@@ -820,8 +820,8 @@ inline T* getContext(const T& t) {
820
820
return ret;
821
821
}
822
822
823
- template <typename Accessor , typename ValueType >
824
- struct PropertyTag {};
823
+ template <typename Func , typename ValueTypeOrSignature >
824
+ struct FunctionTag {};
825
825
826
826
template <typename T>
827
827
struct GetterPolicy ;
@@ -887,7 +887,7 @@ struct GetterPolicy<std::function<GetterReturnType(const GetterThisType&)>> {
887
887
};
888
888
889
889
template <typename Getter, typename GetterReturnType>
890
- struct GetterPolicy <PropertyTag <Getter, GetterReturnType>> {
890
+ struct GetterPolicy <FunctionTag <Getter, GetterReturnType>> {
891
891
typedef GetterReturnType ReturnType;
892
892
typedef Getter Context;
893
893
@@ -968,7 +968,7 @@ struct SetterPolicy<std::function<SetterReturnType(SetterThisType&, SetterArgume
968
968
};
969
969
970
970
template <typename Setter, typename SetterArgumentType>
971
- struct SetterPolicy <PropertyTag <Setter, SetterArgumentType>> {
971
+ struct SetterPolicy <FunctionTag <Setter, SetterArgumentType>> {
972
972
typedef SetterArgumentType ArgumentType;
973
973
typedef Setter Context;
974
974
@@ -1497,9 +1497,9 @@ struct RegisterClassConstructor<std::function<ReturnType (Args...)>> {
1497
1497
}
1498
1498
};
1499
1499
1500
- template <typename ReturnType, typename ... Args>
1501
- struct RegisterClassConstructor <ReturnType (Args...)> {
1502
- template <typename ClassType, typename Callable, typename ... Policies>
1500
+ template <typename Callable, typename ReturnType, typename ... Args>
1501
+ struct RegisterClassConstructor <FunctionTag<Callable, ReturnType (Args...)> > {
1502
+ template <typename ClassType, typename ... Policies>
1503
1503
static void invoke (Callable& factory) {
1504
1504
typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args;
1505
1505
using ReturnPolicy = rvp::take_ownership;
@@ -1633,10 +1633,10 @@ struct RegisterClassMethod<std::function<ReturnType (ThisType, Args...)>> {
1633
1633
}
1634
1634
};
1635
1635
1636
- template <typename ReturnType, typename ThisType, typename ... Args>
1637
- struct RegisterClassMethod <ReturnType (ThisType, Args...)> {
1636
+ template <typename Callable, typename ReturnType, typename ThisType, typename ... Args>
1637
+ struct RegisterClassMethod <FunctionTag<Callable, ReturnType (ThisType, Args...)> > {
1638
1638
1639
- template <typename ClassType, typename Callable, typename ... Policies>
1639
+ template <typename ClassType, typename ... Policies>
1640
1640
static void invoke (const char * methodName,
1641
1641
Callable& callable) {
1642
1642
typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, ThisType, Args...> args;
@@ -1739,7 +1739,7 @@ class class_ {
1739
1739
using invoker = internal::RegisterClassConstructor<
1740
1740
typename std::conditional<std::is_same<Signature, internal::DeduceArgumentsTag>::value,
1741
1741
Callable,
1742
- Signature>::type>;
1742
+ internal::FunctionTag<Callable, Signature> >::type>;
1743
1743
1744
1744
invoker::template invoke<ClassType, Policies...>(callable);
1745
1745
return *this ;
@@ -1819,7 +1819,7 @@ class class_ {
1819
1819
using invoker = internal::RegisterClassMethod<
1820
1820
typename std::conditional<std::is_same<Signature, internal::DeduceArgumentsTag>::value,
1821
1821
Callable,
1822
- Signature>::type>;
1822
+ internal::FunctionTag<Callable, Signature> >::type>;
1823
1823
1824
1824
invoker::template invoke<ClassType, Policies...>(methodName, callable);
1825
1825
return *this ;
@@ -1896,7 +1896,7 @@ class class_ {
1896
1896
typedef GetterPolicy<
1897
1897
typename std::conditional<std::is_same<PropertyType, internal::DeduceArgumentsTag>::value,
1898
1898
Getter,
1899
- PropertyTag <Getter, PropertyType>>::type> GP;
1899
+ FunctionTag <Getter, PropertyType>>::type> GP;
1900
1900
using ReturnPolicy = GetReturnValuePolicy<typename GP::ReturnType, Policies...>::tag;
1901
1901
auto gter = &GP::template get<ClassType, ReturnPolicy>;
1902
1902
typename WithPolicies<Policies...>::template ArgTypeList<typename GP::ReturnType> returnType;
@@ -1930,11 +1930,11 @@ class class_ {
1930
1930
typedef GetterPolicy<
1931
1931
typename std::conditional<std::is_same<PropertyType, internal::DeduceArgumentsTag>::value,
1932
1932
Getter,
1933
- PropertyTag <Getter, PropertyType>>::type> GP;
1933
+ FunctionTag <Getter, PropertyType>>::type> GP;
1934
1934
typedef SetterPolicy<
1935
1935
typename std::conditional<std::is_same<PropertyType, internal::DeduceArgumentsTag>::value,
1936
1936
Setter,
1937
- PropertyTag <Setter, PropertyType>>::type> SP;
1937
+ FunctionTag <Setter, PropertyType>>::type> SP;
1938
1938
1939
1939
1940
1940
auto gter = &GP::template get<ClassType, ReturnPolicy>;
0 commit comments