Показать сообщение отдельно

  #7143  
Старый 04.12.2023, 20:51
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Пишу обертку на sol2 под Lua для перегруженной функции. Почему-то, когда добавляю вторую функцию, я не могу корректно вызвать функцию из под Lua

C++:





Код:
RakClientType
[
"RPC"
]
=
sol
::
overload
(
[
]
(
RakClient
&
pRakClient
,
int
rpcId
,
BitStream
*
bitStream
,
PacketPriority priority
,
PacketReliability reliability
,
char
orderingChannel
,
bool
shiftTimestamp
,
NetworkID networkId
,
BitStream
*
replyFromTarget
)
{
return
pRakClient
.
RPCd
(
&
rpcId
,
bitStream
,
priority
,
reliability
,
orderingChannel
,
shiftTimestamp
,
networkId
,
replyFromTarget
)
;
}
,
[
]
(
RakClient
&
pRakClient
,
int
rpcId
,
const
char
*
data
,
unsigned
int
bitLength
,
PacketPriority priority
,
PacketReliability reliability
,
char
orderingChannel
,
bool
shiftTimestamp
,
NetworkID networkId
,
BitStream
*
replyFromTarget
)
{
return
pRakClient
.
RPC
(
&
rpcId
,
data
,
bitLength
,
priority
,
reliability
,
orderingChannel
,
shiftTimestamp
,
networkId
,
replyFromTarget
)
;
}
)
;


На lua вызываю ее так:

Lua:





Код:
rakClient
:
RPC
(
rpcId
,
bitstream
,
RakCore
.
PacketPriority
.
HIGH_PRIORITY
,
RakCore
.
PacketReliability
.
RELIABLE_ORDERED
,
0
,
false
,
RakCore
.
UNASSIGNED_NETWORK_ID
,
nil
)


Странно, что ошибка появляется если добавить вторую перегрузку (вместо bitStream data и lenght), когда оставляю только одну перегрузку (также через sol:verload), все работает корректно. Ошибка в Lua:

Код:





Код:
sol: no matching function call takes this number of arguments and the specified types
 
Ответить с цитированием