这是对为什么不是来自常量 POD 对象常量本身的字段的跟进?
库中的标头声明类 GUID,例如
static const GUID CLSID_EH264VD =
{ 0x96b9d0ed, 0x8d13, 0x4171, { 0xa9, 0x83, 0xb8, 0x4d, 0x88, 0xd6, 0x27, 0xbe } };
我想编写一个直接从dll创建对象的函数,不需要注册dll,所以我需要将每个CLSID映射到dll名称。就像是
Create<CLSID_EH264VD>()
这将取决于专业化,例如
template<>
struct dll<CLSID_EH264VD>
{
char const* filename = ""mc_dec_avc_ds.ax";
}
因此,尝试使用未知 dll 实例化未注册的类是编译时错误。
问题是模板不能专门用于 GUID。链接的问题说 constexpr 将允许以允许专业化的方式声明 GUID,但 Visual C++ 在最新版本(2012)中不支持 constexpr。任何解决方法?