问题描述
// See: https://stackoverflow.com/a/58746336/2287576
template <typename T,typename U>
T readAndCast(CArchive& ar) {
U x;
ar >> x;
return static_cast<T> (x);
}
它适用于以下代码:
m_iReminderUnitType = readAndCast<int,DWORD>(ar);
其中 m_iReminderUnitType
是 int
类型。
enum class VideoConferenceEventType
{
Recorded,Live
};
m_eVideoconfType = readAndCast(VideoConferenceEventType,DWORD > (ar);
它不起作用并说不允许使用类型名称。这让我感到惊讶,因为实际上这个 enum class
是一个 int.
。我该如何解决这个问题?
目前我正在手动进行:
if (m_dwVersion >= MSA_VERSION_210061)
{
DWORD dwData;
ar >> dwData;
m_eVideoconfType = static_cast<VideoConferenceEventType>(dwData);
//m_eVideoconfType = readAndCast(VideoConferenceEventType,DWORD > (ar);
}
我更愿意使用我的 readAndCast
方法。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)