草庐IT

未知数

全部标签

c++ - 在编译时像未知边界数组一样初始化 C++ 结构

我可以写这个并且它工作得很好:structFoo{inti;std::strings;};constFoofoo[]={{42,"theanswertotheultimatequestions"},{23/*initializingonlythefirstmember,'s'getsthedefaultvalue*/}};我想做的是用一个结构来包装数组,这样我就可以向它添加方法:templatestructMap{std::array,Count>mappings;//or//std::pairmappings[Count];V1operator()(constV2&)const;V2

编译时参数未知的 C++ 函数调用

听起来很奇怪,我需要用C++调用一个函数,但我不知道它的签名。基本上,我想让用户指定参数列表和参数类型,然后尝试使用这些参数调用给定函数。然后我想知道函数调用是否有效,如果它(奇迹般地)有效,返回值是什么(前提是返回类型不是void)。有什么办法可以实现吗?谢谢。 最佳答案 让您的函数采用变体数据类型的列表,例如std::vector并让他们返回bool指示成功或在失败时抛出异常。如果您同意在编译时注册公开的函数,您甚至不必对您的函数施加限制,而是可以为必要的转换生成粘合代码。 关于编译

c++ - SDL2 & GDB : program received signal ?,未知信号

让我们从描述发生的事情开始:我正在Windows上使用SDL2库。我可以使用它编译程序,当我运行.exe时,它​​工作得很好。当我尝试使用GDB调试它时出现问题-当代码进入SDL_Init或SDL_OpenAudio函数(可能创建新线程)时,GDB停止,显示“程序收到信号?,未知信号”消息,当我恢复执行时程序崩溃。显然GDB(https://www.mail-archive.com/cygwin@cygwin.com/msg149735.html)中存在与线程命名相关的错误,应该在GDB版本7.11.1-1中修复。起初我使用GCC5.1.0(TDM)和GDB7.6.1,所以我决定更新到

c++ - 来自 std::promise 的未知异常

下面的代码有什么问题?运行时程序因未知异常而中止#include#includeintmain(){autopromise=std::promise{};autofuture_one=promise.get_future();promise.set_value(1);return0;}错误输出为terminatecalledafterthrowinganinstanceof'std::system_error'what():Unknownerror-1Aborted(coredumped)g++--version对我来说g++(Ubuntu5.4.0-6ubuntu1~16.04.2)

c++ - 捕获未知异常

在我的代码的发布版本中,有一行抛出异常,我不知道它是什么类型的异常,所以我无法正确捕获它或找出问题所在。我使用了catch(...)但那几乎毫无值(value)。伪代码try{m_mmwIPC=gcnewNiftyIPC(gcnewString("Monitor"),true);}catch(CException*e){TCHARszCause[255];e->GetErrorMessage(szCause,255);CStringerrorStr=szCause;RemoveLineFeeds(errorStr);OutputDebugString(errorStr);}catch(

C-CDA验证因我的服务器中的“未知类型”而失败,但在独立项目中没有失败

我正在检查如何使用MDHT库来验证C-CDA文档,审查当前实现,以为我的项目创建验证Web服务。我首先制作了Eclipse本地Java项目,将罐子添加到了类路径中,并实现了代码。执行成功。但是,当我将相同的代码复制到我的Web项目(使用SpringBoot制造)并发送执行此类代码的请求时,该程序会失败。为了更好地解释,我做了以下最小方法:publicvoidexecuteMDHTCode(byte[]fileContents){System.out.println(Arrays.toString(fileContents));ValidationResultresult=newValidati

C++ 正则表达式,未知转义序列 '\.' 警告

我第一次尝试在C++中使用正则表达式,我对转义序列有点困惑。我只是想匹配字符串开头的点。为此,我使用了表达式:“^\\\.”,它有效,但我的编译器(g++)生成警告:warning:unknownescapesequence'\.'regexself_regex("^\\\.");^~如果我使用例如“^\\.”,它不会生成警告,但该正则表达式与我打算做的不匹配。我也不明白为什么我必须在“\”中使用三个反斜杠,两个就足够了吗?第一个反斜杠转义了第二个反斜杠,所以我实际上搜索了.,但它不起作用。有人可以为我澄清一下吗?代码:#include#include#includeusingname

c++ - boost::program_options:如何忽略未知参数?

在boost::program_options库中,我无法理解如何让用户传递一个未通过add_options()添加的参数。我希望它被忽略,而不是终止程序。 最佳答案 今晚我遇到了完全相同的问题。@TAS的回答让我走上了正确的道路,但我还是花了20分钟的时间摸索着找出适合我的特定用例的确切语法。要忽略未知选项,而不是这样写:po::variables_mapvm;po::store(po::parse_command_line(argc,argv,desc),vm);po::notify(vm);我是这样写的:po::variabl

c++ - 如何从动态库中调用未知函数?

我需要实现从.so调用函数的能力,而无需在编译时了解该函数。我只会在运行时提供该信息。我该怎么做?我们可以假设我要调用的函数是从库中导出的,库端不需要做任何事情。函数签名在编译时是未知的。操作系统是RaspberryPI上的Linux。 最佳答案 dlopen和dlsym(或它们的Windows等效项)允许您加载文件名在运行时确定的“共享对象”(已编译代码的模块),然后检索其名称也在运行时确定的子例程的函数指针。然而,每个这样的函数的类型签名——要传递的参数的数量和类型——在编译时必须仍然是已知的,这样你就可以转换void*由dls

ios - 未知类型名称 NSURLSession

在Xcode8、beta6中,编译器似乎无法识别NSURLSession我收到一个错误消息,内容为UnknowntypenameNSURLSession我使用较早版本测试版的同伴没有收到此错误。我查看了Xcodereleasenotes并且找不到任何被弃用的内容。最近的更新中NSURLSession有变化吗?如果重要的话,代码库在Objective-C中。它还使用NSURLSessionDownloadDelegate(编译器还告诉我无法找到NSURLSessionDownloadDelegate的协议(protocol)声明)并建议使用`NSURLConnectionDownload