我有这样的结构:
struct S_SWAP_TALK
{
S_TALK_INFO* pHomeTalk{};
S_AWAY_TALK* pAwayTalk{};
};
而且,我有这个
std::map
:
std::map<UINT, S_SWAP_TALK> m_mapSwapTalks;
目前,我已经像这样填充了地图:
S_SWAP_TALK sSwapTalk{};
sSwapTalk.pAwayTalk = &sAwayTalk;
m_mapSwapTalks[menuItemId] = sSwapTalk;
或
S_SWAP_TALK sSwapTalk{};
sSwapTalk.pHomeTalk = &sPTI;
m_mapSwapTalks[menuItemId] = sSwapTalk;
是否可以简化此代码,以便我不需要将
S_SWAP_TALK
结构声明为变量?例如:
m_mapSwapTalks[menuItemId] = ...;
使用 C++20 你可以写:
m_mapSwapTalks[menuItemId] = { .pAwayTalk = &sAwayTalk };
m_mapSwapTalks[menuItemId] = { .pHomeTalk = &sPTI };