【发布时间】:2017-06-26 12:19:47
【问题描述】:
我使用的是 MFC 项目,该项目应在独立于平台的环境中进行保护,使用 std-function 而不是 MFC/AFX。
例如:使用 CString 代替 std::string,代替 CMutex 使用 std::mutex。
MFC 函数“AfxIsValidAddress”的独立于平台的 C++11 std::-等价物是什么?
【问题讨论】:
-
在标准 C++ 中,没有与
AfxIsValidAddress等价的东西。为什么你仍然需要它?它应该解决什么问题?在非调试版本中,它只是一个普通的空指针检查。 -
如果我检查实现,那么我会在这个函数内一次看到更多检查。那些在非调试版本中都是不活动的还是什么?
-
如果你需要使用
AfxIsValidAddress,你的代码有bug。修复错误,忘记损坏的 MFC 实现(调用损坏的 Windows API)。独立于平台的 C++11std::-equivalent 是不需要它的。如果你这样做了,你就在 UB 土地上,而且根本没有任何保证。
标签: c++ c++11 mfc platform-independent afx