简单地说,我无法运行 App verifier(WOW 或 64 位)。它根本没有开始。事件查看器说:
错误的应用程序名称:appverif.exe,版本:10.0.18362.1,时间戳:0x58ca3409 错误的模块名称:ntdll.dll,版本:10.0.18362.1139,时间戳:0x335bbdaf 异常代码:0xc000003030000000000000 偏移量应用程序启动时间:0x01d6aa7ad4a12bf6 错误的应用程序路径:C:\Windows\SysWOW64\appverif.exe 错误的模块路径:C:\WINDOWS\SYSTEM32\ntdll.dll 报告 ID:235c3a4d-2d54-4436-99bf-b59a7f7f
此外,我尝试在 Visual Studio 下运行 appverif.exe(在系统和 syswow64 中),我看到:
编辑(根据评论更新)有些人建议应用程序验证程序没有 GUI。但是,上次运行它时,我看到了以下内容:
我确信必须能够将SFINAE(可能带有宏)用于static_assert(),而仲裁代码将无法编译.
在我的代码库中有一些复杂的情况,我有一个我想禁止临时的类(我相信模式是):
class(const class&& tmp)=delete; /* deny copying from an unnamed temporary */
class (class&& rhs){/* allow construction from non-temporary rvalue*/}
Run Code Online (Sandbox Code Playgroud)
目前,我检查一个不需要的构造函数不能编译,但当然我必须将它注释掉以便再次编译测试!
如果我能做到:
static_assert(DOES_NOT_COMPILE(myclass_t("Hello")));
const char* help = "HELP";
static_assert(!DOES_NOT_COMPILE(myclass_t(help)));
// COMPILES() might be better here :-)
Run Code Online (Sandbox Code Playgroud)
这对我有很大的帮助,但我似乎无法找到一般的SFINAE解决方案.仅限C++ 14,所以:
if constexpr
Run Code Online (Sandbox Code Playgroud)
不可用.
rangev3 ts中"范围"和"视图"之间的区别是什么?
在G搜索上找不到任何类似的答案.猜猜我正在努力解决每个人应该做的事情:
是这样的(在c ++中说)范围'是'a'视图,反之亦然?
它只是一个视图是只读范围吗?或者也许是范围中的"元素"(当你取消引用迭代器时得到的)是const而不是另一个?
谢谢!