草庐IT

mh_execute_header

全部标签

c++ - 如何通过 AST 为访问者模式解决 C++ 中的 header 重复问题

请注意:这些是描述一般困境的代码片段。完整的代码确实包括“includeguards”/#pragmaonce/whathaveyou。我正在实现遍历AST的访问者模式,想知道解决以下问题的C++方法是什么:我有AST.h,它有基本的AST节点类声明:classNode{public:virtualvoidaccept(Visitor*v){v->visit(this);}};连同用于声明、表达式等的所有具体节点子类。然后我有ASTVisitor.h声明访问者界面,按照以下行:classVisitor{public:Visitor(){}virtual~Visitor(){}virtu

C++11 多线程 : State of thread after execution

线程执行完成后的状态是什么?是执行完立即销毁还是随父线程一起销毁? 最佳答案 std::thread对象不同于底层控制线程(尽管它们应该一对一映射)。这种分离非常重要,它意味着std::thread和控制线程可以有不同的生命周期。例如,如果你在堆栈上创建你的std::thread,你真的需要在你的对象被销毁之前调用thread::detach(如果你没有析构函数将调用terminate)。此外,正如Grizzly指出的那样,您可以在对象销毁之前调用.join(),这将阻塞直到线程执行完成。这也回答了您的问题-std::thread对

c++ - 使用 CMake 将 qt header 声明为系统 header

我用CMake和qt说:find_package(Qt5COMPONENTSWidgets)另外,我想使用高警告级别并且我想将警告视为错误。所以我使用:set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-Werror-Wall-Wextra")但是,我不关心我使用的库中的警告。因此,例如,为了包含boost,我在include_directories调用中添加了SYSTEM,这样我就不会被来自外部库的警告所困扰:include_directories(SYSTEM${Boost_INCLUDE_DIR})但这对qt不起作用,因为没有显式的include_dir

c++ - 将OpenCV图像格式改为matlab格式,调试断言__acrt_first_block == header

我正在尝试将OpenCV图像(类型为cv::Mat)转换为matlab样式格式,因为这是程序的其余部分所需要的。我正在使用以下代码来执行此操作:inlinedouble*ConvertCVImageToMATLABImage(Mat&CvImage){std::vectorColorChannels;//B,G,Rchannelscv::split(CvImage,ColorChannels);//remembertotranposefirstbecauseMATLABiscol-major!!!cv::transpose(ColorChannels[0],ColorChannels[

c++ - 何时可以将多个源文件与单个 header 一起使用

Oneheaderformultiplecpp-files我已经阅读了这篇文章,并且认为我理解了以后可能出现的问题。然而,尽管如此,我相信我的问题可能是一个特例,我想知道是否有人有不同的建议。我长期从事服务器和客户端的工作,原本应该是包罗万象的“CommandManager”类变成了一个可怕的怪物。它旨在拦截可能来自数百个客户端的消息,对其进行解析,找出命令是什么,并将其发送到正确类中的所需函数。这是通过在解码header后过滤掉消息,然后将接收到的“纯文本”命令与预加载了所有命令的std::map相匹配来完成的。这意味着对于我实现的每个不同的命令,我都需要一个匹配的成员函数。最初效果

c++ - 当工件是库且标志影响 C 或 C++ header 时,功能标志/切换

关于featureflags/toggles的讨论很多。和whyyouwouldusethem但大多数关于实现它们的讨论都围绕(网络或客户端)应用程序展开。如果您的产品/工件是C或C++库,并且您的公共(public)header受标志影响,您将如何实现它们?“天真”的做法并没有真正奏效:///Doessomething/***Doessomethingreallycool#ifdefFEATURE_FOO*@paramfooParamdescribeparamforfoo#endif*/voiddoSomethingCool(#ifdefFEATURE_FOOintfooParam=

c# - 通过 C++ header 在 C++ 和 C# 中使用枚举

我有一个用C++编写的服务器,它位于命名管道的末端,嗯,提供服务。可以发送到服务器的命令在位于头文件中的枚举中定义。enum{e_doThing1,e_doThing2...e_doLastThing};所需枚举的值被放入发送到服务器的消息的第一个字节中,因此它知道要做什么。我现在正在编写一个需要访问服务的C#客户端。有什么方法可以将header包含到C#代码中,这样我就不必在两个位置维护相同的列表了吗?谢谢,帕特里克 最佳答案 如果您要将枚举放入命名空间并为其命名,您可能只需将头文件直接添加到C#项目即可。编辑最终解决方案:这种方

警告:pdostatement :: execute():sqlstate [hy093]:无效参数编号:绑定变量的数量不匹配令牌数字

我是PHP的初学者,目前,我正在研究我的PHP添加客户端用户帐户。我无法添加到数据库,我得到了此警告.警告:pdostatement::execute():sqlstate[hy093]:无效的参数编号:绑定变量的数量不匹配令牌数量,我在问题上找不到特定的解决方案。您的帮助将不胜感激。这是我的PHP代码。prepare($query);$stmt->bindParam(1,$clientunum);$stmt->bindParam(2,$username);$stmt->bindParam(3,$userpass);$stmt->bindParam(4,$user_fname);$stmt->

c++ - 如何使用 waf 在自定义路径中搜索库/ header ?

我尝试在wafwscript文件中搜索库和header。通常,可以通过以下方式实现:defconfigure(conf):conf.load("compiler_cxx")conf.check_cxx(lib="thelib")conf.check_cxx(header_name"header.hpp")这在类Unix系统上运行良好,其中库和header大多位于公共(public)位置。但是,我想将自定义搜索路径添加到check_cxx()命令,特别是让Windows系统上的用户有机会找到通常位于文件系统某处的库。我知道libpath参数,但是它仍然需要以某种方式填充,我想知道是否没有

c++ - 使用单独的源代码和 header 编译类

编辑:问题的解决方案如下:http://www.jusuchyne.com/codingchyne/2011/03/codeblocks-failed-to-find-the-header-file/它不会编译,我有以下错误:foo.h目录下没有那个文件;foo尚未声明;num未在此范围内声明foo不是类或命名空间至少可以说,这很奇怪,因为我只是使用代码块“创建一个新类”,然后将其添加到该项目中。这是源代码:标题:#ifndefFOO_H#defineFOO_Hclassfoo{private:intnum;public:foo();voidset_num(intset);intget