微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何修改我的 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 举报,一经查实,本站将立刻删除。