如何修改我的 readAndCast 模板以适应我的枚举类类型?

问题描述

我有这个现有的功能

// 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_iReminderUnitTypeint 类型。

今天我在我的项目中添加一个新的 enum class

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 (将#修改为@)