
28.08.2021, 18:26
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
всем привет, я столкнулся с прикольной проблемой, она заключается в том, что ИНОГДА std::vector при emplace_back у меня выбивает исключение this = nullptr
код класса
C++:
Код:
class
RenderClass
{
public
:
bool
m_bIsEnabled
{
false
}
;
// визуалка 2019 показывает ошибку тут
std
::
string m_sName
{
""
}
;
private
:
std
::
vector
m_objectsRenders
;
std
::
vector
m_text3dRenders
;
std
::
vector
m_pickupRenders
;
public
:
RenderClass
(
)
;
RenderClass
(
const
char
*
szName
)
;
void
ReadWrite
(
READ_WRITE_PARAMS
)
;
bool
areAnyObjectRendersEnabled
(
)
;
bool
areAnyickupRendersEnabled
(
)
;
bool
areAnyText3DRendersEnabled
(
)
;
void
renderPickups
(
RenderPickup_ObjectData
*
pRenderPickupData
)
;
void
renderObjects
(
RenderPickup_ObjectData
*
pRenderObjectData
)
;
void
render3DTexts
(
Render3DTextData
*
p3DTextData
)
;
void
drawEditor
(
size_t spl
)
;
void
drawMenu
(
size_t i
)
;
}
;
Код с самим emplace_back()
C++:
[CODE]
void
CustomRender
::
ReadWrite
(
READ_WRITE_PARAMS
)
{
using
namespace
std
::
chrono_literals
;
try
{
FIELD_IV4
(
customRenderData
.
vec4Color
)
;
FIELD
(
customRenderData
.
bDrawLine
)
;
FIELD
(
customRenderData
.
m_fFontScale
)
;
FIELD
(
m_bEnabled
)
;
if
(
bRead
)
{
size_t i
=
0
;
while
(
true
)
{
if
(
data
[
"class"
]
[
std
::
to_string
(
i
)
.
c_str
(
)
]
.
is_null
(
)
)
break
;
auto
&&
renderClass
=
m_classes
.
emplace_back
(
)
;
// вот тут ошибка
renderClass
.
ReadWrite
(
data
[
"class"
]
[
std
::
to_string
(
i
)
.
c_str
(
)
]
,
bRead
)
;
i
++
;
}
}
else
{
for
(
size_t i
=
0
;
i
|
|
|