是否可以将const参数用于CArray
我目前正在使用这样的CArray,但它无法编译:
typedef CArray<const CString, const CString&> data_container;
我总是得到这个编译错误:
错误C2664:'ATL :: Checked :: memcpy_s' :无法转换参数1 'const CString *'到'void *'
答案 0 :(得分:2)
CArray使用的代码期望您的TYPE是非const的,因此它可以转换为void *(如编译错误消息所述)。
你可以存储const CString指针,这会在解除引用时给你一个const CString。你现在有分配/清理内存的负担。另一种方法是将CString包装在一个简单的类中,该类具有一个“GetString”函数,该函数返回对其内部CString实例的const引用。
答案 1 :(得分:0)
显然没有。你为什么要那样做?