草庐IT

run_func

全部标签

c++ - 了解 C++ 内存模型 : Different values on different runs

下面的代码有什么问题?我希望看到10由consumer1和consumer2生产,但有时我会看到-1。#include#include#include#includestd::atomicglobal;voidproducer(){global.store(10,std::memory_order_release);}voidconsumer1(){inta=global.load(std::memory_order_acquire);printf("ainconsumer1%d\n",a);}voidconsumer2(){inta=global.load(std::memory_o

c++ - __func__ 和日志记录

我正在用C++实现一个日志处理程序,它工作得很好,但是我发现有一件事是可用的,那就是记录器从中获取输出的地方。我想这并不是什么大问题,但我偶然发现了__func__标识符,它基本上会保留当前函数的函数名称。所以我在我的Log类中有一个名为Write的静态函数,它需要一个日志级别和一个变化列表。所以我会这样调用它:Log::Write(LOG_DEBUG,"thisisaninteger:%d",10);它会打印:2013-01-02=>10:12:01.366[DEBUG]:thisisaninteger:10但是我认为在消息中也包含调用者可能会很有用,以生成如下内容:2013...=

c++ - 从 std::thread 调用 boost::asio::io_service::run

我有一个处理我的连接的类,它有一个boost::asio::io_service成员。我想从std::thread调用io_service::run(),但我遇到了编译错误。std::threadrun_thread(&boost::asio::io_service,std::ref(m_io_service));不起作用。我看到了使用boost::thread执行此操作的各种示例,但我想为此坚持使用std::thread。有什么建议么?谢谢 最佳答案 我知道有两种方法,一种是通过lambda创建std::thread。std::t

tp8 升级TP框架版本,同时网站打不开,错误代码 ERR_ADDRESS_INVALID,启动内置服务器 运行PHP命令php think run 输出结果是空白

环境:windows11 phpstudy_pro  thinkphp8.0php8.2.9  一、升级TP框架发现php网站打不开,错误提示:错误代码ERR_ADDRESS_INVALID,但是静态网站可以打开二、运行命令,输出结果空白进入composer:选择composer,再选择对应网站的PHP版本,启动内置服务器按上面操作,发现输出结果是空白,没有任何东西三、启用VSCODE的xdebug调试在VSCODE中启用调试F5,在think文件中打断点全部勾上一直一步一步往下走,发现在提示错误出现异常。Fatalerror:UncaughtReflectionException:Class

c++ - 为什么写 func( const Class &value ) 更可取?

为什么要使用func(constClass&value)而不仅仅是func(Classvalue)?现代编译器肯定会使用任何一种语法来做最有效的事情。这是否仍然是必要的,或者只是对非优化编译器时代的保留?补充一下,gcc将为这两种语法生成类似的汇编代码输出。也许其他编译器没有?显然,事实并非如此。我很久以前从一些代码中得到的印象是gcc这样做了,但是实验证明这是错误的。感谢MichaelBurr,他对similarquestion的回答如果在这里给出,将被提名。 最佳答案 2个签名之间有2个较大的语义差异。首先是在类型名称中使用&。

c++ - const ref lvalue to non-const func return value 是否专门减少拷贝?

我遇到了一个C++习惯,我试图研究它以了解它的影响并验证它的用法。但我似乎找不到确切的答案。std::vectorgetThings();voiddo(){conststd::vector&things=getThings();}这里我们有一些返回非const&值的函数。我看到的习惯是在分配函数的返回值时使用const&左值。提出这个习惯的原因是它减少了拷贝。现在我一直在研究RVO(返回值优化)、复制省略和C++11移动语义。我意识到给定的编译器可以选择阻止通过RVO进行复制,不管这里是否使用了const&。但是,在防止复制方面,const&左值的使用对非const&返回值有任何影响吗

c++ - Visual Studio 2008 : how to pause the running program to see a variable value?

我已经开始了一个很长的循环,我不想重新开始(已经运行了3个小时,我计算它只运行了1个小时),我担心我的程序运行不正确,因为它花了这么长时间长。我太愚蠢了,无法为自己实际输出任何状态值(我认为这不会花费3个该死的小时)。那么,当程序以“发布”模式从visualstudio启动时,是否有某种方法可以监视一个特定的变量值? 最佳答案 你要做的是附加到正在运行的进程加载代表项目的解决方案工具->附加到流程选择正在运行的进程并点击附加点击IDE上的暂停按钮停止进程或设置断点此时你将在调试器中崩溃并能够检查正在运行的程序

c++ - 什么时候用 "class_name obj_name = func()"替换 "class_name obj_name{func()}"有意义?

在代码中我看到了以下结构:constclass_nameobj_name{func()};func()返回名为class_name的类的对象。所以,我想知道为什么不使用以下结构:constclass_nameobj_name=func(); 最佳答案 constclass_nameobj_name{func()};作者通过写上面的代码,试图遵循统一初始化语法(C++11引入),从而避免繁琐的解析和最令人烦恼的解析,即使是经验丰富的程序员也会意外陷入其中。他正试图将最佳实践灌输到他的大脑中,这样他就不会偶尔陷入上述解析问题,如下所述。

c++ - "Could not determine which "制作 "command to run. Check the "制作 "step in the build configuration."Qt 创建者

我安装了好几次qtcreator,但它从来没有像我现在的PC那样花钱;首先,我使用我的Pendrive(Qt5.8的)上一直有的安装程序,告诉我我无法下载一些存储库,我下载了相同安装程序的5.9版,结果相同。在尝试安装它几次但它没有加载后,我去了另一所房子,在那里我设法安装了它,尽管我必须非常清楚由于缺少库而导致的许多错误(在安装Qt5.9时)。在此之后,我不得不通过“windows更新”为我的win7操作系统下载sp1以运行Qtcreator,但后来,在加载、创建或运行项目时,我会在控制台中说(它是否是GUI并不重要)以下:“无法确定运行哪个”make“命令。检查构建配置中的”mak

c++ - 如何以编程方式打开 Run c++?

问题是如何从C++以编程方式打开运行?我知道有一些功能可以替代它,例如shellexec、winexec,但对于某些任务,我只需要显示“运行”对话框即可。 最佳答案 运行对话框位于shell32.dll中,使用函数RunFileDlg。显示对话框的一种方法是使用rundll32.exe调用该函数。使用CreateProcessWin32API执行以下命令:rundll32.exeshell32.dll,#61(其中#61是RunFileDlg函数的序号)。shell32.dll函数引用:http://www.geoffchappel