草庐IT

enable-flex

全部标签

c++ - enable_shared_from_this 和堆栈上的对象

有没有办法阻止shared_from_this()调用堆栈分配的对象?基类列表中的enable_shared_from_this是类用户的强指标,但有没有办法强制正确使用?示例代码:classC:publicenable_shared_from_this{public:shared_ptrmethod(){returnshared_from_this();}};voidfunc(){Cc;shared_ptrptr=c.method();//exceptioncomingfromshared_from_this()} 最佳答案 因此

c++ - 在没有全局或静态变量的情况下配置 Bison 和 Flex

我正在使用小型语言/IDE工作。我需要知道如何配置flex和bison一起工作,但不使用任何全局或静态变量。我需要将我的AST指针传递给Bison。我还需要bison也将我的AST传递给flex。这是一个线程环境,但我不需要任何线程同步。我需要为每个yyparse()调用一个单独的yylineno变量。我读到了%defineapi.pure、%parse-param和%option可重入。但我不知道如何让它们一起工作...提前谢谢...我试过这个:扫描仪.l:%{#include#include#include"parser.tab.h"#defineYY_DECLextern"C"i

c++ - 我们什么时候应该使用 std::enable_shared_from_this

我刚知道std::enable_shared_from_this表格thislink.但是看了下面的代码,不知道什么时候用。try{Goodnot_so_good;std::shared_ptrgp1=not_so_good.getptr();}catch(std::bad_weak_ptr&e){//undefinedbehavior(untilC++17)andstd::bad_weak_ptrthrown(sinceC++17)std::cout上面的代码“不太好”,因为不存在shared_ptr打电话前getptr().所以好的应该是:std::shared_ptrgp1=st

c++ - `std::enable_if` 是函数指针——怎么样?

如果用户将函数指针作为参数传递,我想使用SFINAE启用特定模板。我用谷歌搜索但一无所获-我也尝试查看文档,但找不到任何类似于is_function_ptr的内容.函数指针,我指的是全局函数指针,比如TReturn(*)(TArgs...). 最佳答案 下面是确定某物是否为函数指针的类型特征和几个测试用例。请注意,要测试某物是否是函数指针,您需要测试是否std::is_pointer::value是true如果std::is_function::value是true其中T是P删除指针。下面的代码就是这样做的:#include#inc

c++ - 使用 std::enable_if 作为模板时的默认模板参数。 param.: 为什么可以使用两个仅在 enable_if 参数上不同的模板函数?

在languagereferenceofstd::enable_ifatcppreference包括以下注释NotesAcommonmistakeistodeclaretwofunctiontemplatesthatdifferonlyintheirdefaulttemplatearguments.Thisisillegalbecausedefaulttemplateargumentsarenotpartoffunctiontemplate'ssignature,anddeclaringtwodifferentfunctiontemplateswiththesamesignaturei

windows - 使用 flex 播放来自 Windows 共享的视频

我需要在公司网络中播放来自Windows共享的视频文件。使用共享是因为它会在其他公司站点上进行复制,因此每个用户都可以从其本地存储(我们为此使用DFS)下载视频。视频需要在我们的门户网站上播放。所以我想使用Flex来完成这项任务。问题是:如何从flex打开windows共享。如果你能提出其他解决方案,那就太好了谢谢! 最佳答案 您可能需要使用这样的文件路径:file:///\\myserver\myfolder\myvideofile.avi如果没有,您可能需要将视频文件流式传输到您的应用程序中,如下所示:privatefuncti

c - 我怎样才能 ENABLE_VIRTUAL_TERMINAL_PROCESSING?

前段时间我注意到有一个新的控制台模式ENABLE_VIRTUAL_TERMINAL_PROCESSING,我决定尝试一下。这是我的示例代码://File:test1.c#include#include#include#includeconstchar*constTEST_STRING="\x1B[31;1mRed\x1B[0m\x1B[32;1mGreen\x1B[0m\x1B[34;1mBlue\x1B[0m";voidErrorExit(constchar*errorMessage){puts(errorMessage);exit(1);}intmain(intargc,char*

c++ - ENABLE_VIRTUAL_TERMINAL_PROCESSING 和 DISABLE_NEWLINE_AUTO_RETURN 失败

重点是在终端中制作这款小型多人游戏,应用一些基本的图形概念来掌握它的工作原理及其背后的数学原理。请注意,我希望这样做是为了好玩,而且我完全知道有比使用终端更好的替代方法。我需要一个可以写入的控制台,所以重点是删除滚动条并将整个缓冲区打印到屏幕上。但是由于字符被写入到上一行末尾时的回车:这看起来很丑陋:在尝试了大约3个小时通过SetConsoleMode使其工作后,我不和谐地询问了它。我得到的答案是这样的:voidmain(){autoh=GetStdHandle(STD_OUTPUT_HANDLE);DWORDmode=0;GetConsoleMode(h,&mode);mode|=D

windows - 让 CMake 在 Windows 上找到 flex

我正在尝试在一个项目上使用flex,并且我正在尝试使用CMake将flex与我的项目链接起来。我在网上找到了一个我正在使用的FindFLEX.cmake。你可以找到它here.默认情况下,这应该在CMake中,但我认为不是。我的目录结构如下root---src---CMakeLists.txt---cmake---Modules---FindFLEX.cmake---build---external---flex-Whereflexisinstalled---bin---flex.exe---lib---libfl.a我的src/CMakeLists.txt如下cmake_minimu

windows - 关闭开发工具后如何维护Chrome "enable request blocking"?

我说的是Chrome中的功能,打开开发工具右上角的三点菜单>更多工具>请求阻止此功能非常棒,它会记住要阻止的域/URL,但是每次您关闭开发工具时,它都会取消选中“启用请求阻止”框。我想一直阻止一些东西,不管开发工具是否打开...有没有办法阻止它取消self检查?可以在后台保持打开状态,但如果当前选项卡打开一个新选项卡,它甚至不会转移到新选项卡。也许有一些可以在较新版本中设置的新标志(现在我们在Chrome79上,这个问题最初是在Chrome63中提出的)。 最佳答案 打开一个chrometicket来添加这个。如果您认为这是一个有用