 |
|

30.08.2022, 00:22
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от ARMOR
Дайте пожалуйста документацию/гайд по созданию ini/json конфигов. Что-то находил, но не совсем понимал что да как
GitHub - nlohmann/json: JSON for Modern C++
JSON for Modern C++. Contribute to nlohmann/json development by creating an account on GitHub.
github.com
|
|
|

31.08.2022, 13:17
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
никто не знает как убрать лимит в сампе на 20000 моделей в .ide, типа я как всегда не нашёл нихуя в иде)
|
|
|

01.09.2022, 13:33
|
|
Постоянный
Регистрация: 20.03.2021
Сообщений: 666
С нами:
2711257
Репутация:
83
|
|
есть у кого-нибудь DevKitPSP? Если есть скиньте пожалуйста
|
|
|

12.09.2022, 01:59
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Как создать лямбда-функцию с определенным соглашением о вызове? К примеру, есть такая лямбда
C++:
Код:
auto
func
=
[
]
(
int
a
,
int
b
)
{
return
a
+
b
;
}
;
Как явно указать, что она должна быть __stdcall функцией?
|
|
|

12.09.2022, 03:10
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от AdCKuY_DpO4uLa
Как создать лямбда-функцию с определенным соглашением о вызове? К примеру, есть такая лямбда
C++:
Код:
auto
func
=
[
]
(
int
a
,
int
b
)
{
return
a
+
b
;
}
;
Как явно указать, что она должна быть __stdcall функцией?
Она сама кастуется.
При желании можно
|
|
|

12.09.2022, 19:20
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
есть такой код
C++:
Код:
class
CClass
{
private
:
template
using
callbacks
=
std
::
vector
;
using
SomeCallback_t
=
void
(
__stdcall
*
)
(
int
,
int
)
;
callbacks
vecCallBacks
;
public
:
inline
auto
operator
+=
(
SomeCallback_t func
)
->
void
{
vecCallBacks
.
push_back
(
func
)
;
}
;
inline
auto
ProcessCallBack
(
int
a
,
int
b
)
->
void
{
printf
(
"start of calling\n"
)
;
for
(
auto
i
:
vecCallBacks
)
{
i
(
a
,
b
)
;
}
printf
(
"end of calling\n"
)
;
}
;
}
;
int
main
(
)
{
CClass tmp
;
int
var1
=
10
;
tmp
+=
[
&
]
(
int
a
,
int
b
)
{
var1
++
;
printf
(
"%d + %d = %d\n"
,
a
,
b
,
a
+
b
)
;
}
;
while
(
true
)
{
tmp
.
ProcessCallBack
(
rand
(
)
%
100
,
rand
(
)
%
100
)
;
Sleep
(
300
)
;
}
return
0
;
}
Если указывать лямбду без захвата по ссылке, всё работает, однако, если попытаться создать лямбду с захватом переменных по ссылке, пишет, что нет перегруженного оператора +=, вопрос в том, как сделать так, чтобы лямбда
C++:
Код:
tmp
+=
[
&
]
(
int
a
,
int
b
)
{
var1
++
;
printf
(
"%d + %d = %d\n"
,
a
,
b
,
a
+
b
)
;
}
;
захватывала переменные по ссылке?
|
|
|

12.09.2022, 19:21
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от AdCKuY_DpO4uLa
есть такой код
C++:
Код:
class
CClass
{
private
:
template
using
callbacks
=
std
::
vector
;
using
SomeCallback_t
=
void
(
__stdcall
*
)
(
int
,
int
)
;
callbacks
vecCallBacks
;
public
:
inline
auto
operator
+=
(
SomeCallback_t func
)
->
void
{
vecCallBacks
.
push_back
(
func
)
;
}
;
inline
auto
ProcessCallBack
(
int
a
,
int
b
)
->
void
{
printf
(
"start of calling\n"
)
;
for
(
auto
i
:
vecCallBacks
)
{
i
(
a
,
b
)
;
}
printf
(
"end of calling\n"
)
;
}
;
}
;
int
main
(
)
{
CClass tmp
;
int
var1
=
10
;
tmp
+=
[
&
]
(
int
a
,
int
b
)
{
var1
++
;
printf
(
"%d + %d = %d\n"
,
a
,
b
,
a
+
b
)
;
}
;
while
(
true
)
{
tmp
.
ProcessCallBack
(
rand
(
)
%
100
,
rand
(
)
%
100
)
;
Sleep
(
300
)
;
}
return
0
;
}
Если указывать лямбду без захвата по ссылке, всё работает, однако, если попытаться создать лямбду с захватом переменных по ссылке, пишет, что нет перегруженного оператора +=, вопрос в том, как сделать так, чтобы лямбда
C++:
Код:
tmp
+=
[
&
]
(
int
a
,
int
b
)
{
var1
++
;
printf
(
"%d + %d = %d\n"
,
a
,
b
,
a
+
b
)
;
}
;
захватывала переменные по ссылке?
лямбда с захватом это объект с состоянием, поэтому она не кастуется в простую функцию
|
|
|

12.09.2022, 19:26
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Сообщение от kin4stat
лямбда с захватом это объект с состоянием, поэтому она не кастуется в простую функцию
Заставить ее кастоваться в функцию никак нельзя?
|
|
|

12.09.2022, 19:26
|
|
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами:
3174020
Репутация:
213
|
|
Сообщение от AdCKuY_DpO4uLa
есть такой код
C++:
Код:
class
CClass
{
private
:
template
using
callbacks
=
std
::
vector
;
using
SomeCallback_t
=
void
(
__stdcall
*
)
(
int
,
int
)
;
callbacks
vecCallBacks
;
public
:
inline
auto
operator
+=
(
SomeCallback_t func
)
->
void
{
vecCallBacks
.
push_back
(
func
)
;
}
;
inline
auto
ProcessCallBack
(
int
a
,
int
b
)
->
void
{
printf
(
"start of calling\n"
)
;
for
(
auto
i
:
vecCallBacks
)
{
i
(
a
,
b
)
;
}
printf
(
"end of calling\n"
)
;
}
;
}
;
int
main
(
)
{
CClass tmp
;
int
var1
=
10
;
tmp
+=
[
&
]
(
int
a
,
int
b
)
{
var1
++
;
printf
(
"%d + %d = %d\n"
,
a
,
b
,
a
+
b
)
;
}
;
while
(
true
)
{
tmp
.
ProcessCallBack
(
rand
(
)
%
100
,
rand
(
)
%
100
)
;
Sleep
(
300
)
;
}
return
0
;
}
Если указывать лямбду без захвата по ссылке, всё работает, однако, если попытаться создать лямбду с захватом переменных по ссылке, пишет, что нет перегруженного оператора +=, вопрос в том, как сделать так, чтобы лямбда
C++:
Код:
tmp
+=
[
&
]
(
int
a
,
int
b
)
{
var1
++
;
printf
(
"%d + %d = %d\n"
,
a
,
b
,
a
+
b
)
;
}
;
захватывала переменные по ссылке?
юзай std function
|
|
|

13.09.2022, 09:36
|
|
Новичок
Регистрация: 19.06.2022
Сообщений: 14
С нами:
2055431
Репутация:
3
|
|
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|