草庐IT

lua_remove

全部标签

c++ - 无序集 : remove with move

在c++11中,std::unordered_set容器提供插入重载和新函数emplace,因此它可以与不可复制构造的键一起使用,例如std::unique_ptr。当您想删除其中一个key时会发生什么?autotemp=std::move(*some_iterator)有效吗?是否有一些函数可以让我们同时删除一个元素并将其move到临时文件中?编辑:我试着让它简短​​、甜美和简单,但要更清楚:是否有迭代器适配器(可能是move_iterator?)可以让我从容器中move元素并删除该迭代器?如果不是,为什么不呢?future的c++不应该包含这种接口(interface)吗?情况似乎

c++ - boost 属性树 : Remove a node

如何从boostxml属性树中删除节点?我有这样一个文档:some/foldersome/foldersome/folder我知道如何迭代和打印所有文件夹,但我如何删除其中一项并将xml保存回来? 最佳答案 我可能会尝试:boost::property_tree::ptreept;pt.erase(key); 关于c++-boost属性树:Removeanode,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

c++ - 如何在 C++ 和 Lua 之间来回传递大型结构

我正在考虑将Lua嵌入到我正在开发的C++应用程序中。我的意图是使用Lua编写脚本,为某些给定输入执行哪些有序操作,即。在c++程序中接收到一个新的工作项,将详细信息传递给Lua后端,Lua回调到c++中进行必要的工作,返回完成的结果。涉及的主要数据结构是一个大型(大约80多个成员)struct。我是Lua的(非常)新手,不确定如何将它传入和传出我的主机应用程序和嵌入式Lua状态。到目前为止,我认为我的选择是:a)在进出C++和Lua时将所有单独的数据成员压入/弹出堆栈(听起来很乱)。b)构建一个表并用值填充,然后将其放入/取出堆栈(更干净一点)。c)将它作为userdata传递(轻/

c++ - 我如何清理我的 lua 状态堆栈?

我正在使用luaC-API读取存储在lua文件中的配置数据。我在文件中有一个漂亮的小表,我编写了一个查询C函数来解析表中的特定字段。(是的,它有效!)它通过一遍又一遍地调用其中一些函数来工作:...lua_getglobal(...);lua_pushinteger(...);lua_gettable(...);lua_pushstring(...);lua_gettable(...);lua_lua_getfield(...);...你明白了。像这样查询完数据后,是否必须清理堆栈? 最佳答案 只要您的堆栈不会无限制地增长,就可以了

c++ - 为什么 std::move() 没有 _Remove_reference 就不能工作?

如您所知,_Remove_reference的存在是为了将T&转换为T或将T&&转换为T。我怀着一种玩乐的心情写了下面的代码,它根本没有像我预期的那样工作,但不知道为什么。templatestruct_Remove_reference{//removereferencetypedef_Ty_Type;staticvoidfunc(){cout//struct_Remove_reference//{//removereference//typedef_Ty_Type;//staticvoidfunc(){cout//struct_Remove_reference//{//removerv

c++ - 注册用于 Lua 5.2 的 C++ 类

所以我正在阅读如何通过THISlittleblogtutorial为Lua创建和注册一个C++类.但尽管它简单、信息丰富且清晰易读,但它似乎适用于旧版本的Lua。所以一些函数/宏要么丢失了,要么只是具有不同的签名。以下代码在LuaC5.2版中会是什么样子?#include#include#include#include#includeusingnamespacestd;//JustauselesstestclassclassMyClass{private:int_X;public:MyClass(intx):_X(x){};~MyClass(){Release()};//Display

c++ - 当我的 lua 代码抛出错误时,为什么我无法捕获 luabind::error 异常?

当您从C++调用LUA函数并且出现运行时错误时,LuaBind会抛出一个luabind::error异常,您可以捕获该异常,然后读取堆栈以查看错误是什么。我的调试器确实捕获了这个异常,但是当我让调试器继续运行时,程序没有在我的代码中捕获到异常,而是立即终止。LuaBind包含来自析构函数~proxy_member_void_caller()的文件中的“call_member.hpp”抛出异常。简单的测试代码就会出现问题。我正在使用带有LuaBind0.9.1的Xcode5。 最佳答案 原来是badpracticetothrowexc

c++ - std::remove_cv 应该在 const T 数组上产生什么类型?

应该是什么类型std::remove_cv生产?int[3]或constint[3]?constint[3]是一个arrayof3constint对吧?,并且没有顶级cv限定符。所以它不应该产生constint[3]吗??最新版本的gcc/libstdc++正在生成int[3]我认为。这是一个错误吗?为什么/为什么不? 最佳答案 N4140§3.9.3[basic.type.qualifier]/p5,强调我的:Cv-qualifiersappliedtoanarraytypeattachtotheunderlyingelement

Unity 项目中怎样正确的使用 Lua?

(图源siki学院-狸墨老师)什么是LuaLua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。可以方便的与c/c++进行相互调用。但是Unity中主要是用c#进行开发的,因此在Unity中使用Lua通常有以下两种方案:使用c#实现一个lua虚拟机基于原生的cluaapi做一个封装,让c#调用为什么要使用Lua1.轻量级:Lua用标准C语言编写并以源代码形式开发,编译后仅仅一百余千字节,可以很方便的嵌入到其他程序中。2.可扩展:Lua提供非常丰富易于使用的扩展接口和机制,由宿主语言(通常是C或C++)提供功能

c++ - 循环遍历 C++ 中的所有 Lua 全局变量

这个问题在这里已经有了答案:IteratingthroughaLuatablefromC++?(3个答案)关闭9年前。我已经搜索了很长时间,但我还没有找到从C++中获取所有全局变量的方法。考虑这个小的Lua测试脚本。myGlobal1="Global1"myGlobal2=2functiontest()locall1=0print(myGlobal1,myGlobal2,l1)endtest()假设您在print(myGlobal1,myGlobal2,l1)处暂停执行并从C++获取所有全局变量(myGlobal1和myGlobal2).这些示例是任意的,从C++的角度来看,全局变量是