草庐IT

lua_remove

全部标签

c++ - shared_ptr 需要完整的类型;不能与 lua_State 一起使用*

我正在为Lua编写C++/OOP包装器。我的代码是:classLuaState{boost::shared_ptrL;LuaState():L(luaL_newstate(),LuaState::CustomDeleter){}}问题是lua_State是不完整的类型,而shared_ptr构造函数需要完整的类型。我需要安全的指针共享。(有趣的是,boost文档说大多数函数不需要完整类型,但构造函数需要,所以没有办法使用它。http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/smart_ptr.htm)我能解决这个问题吗?谢谢。

c++ - boost named_mutex 和 remove() 命令

我有一个可以由多个线程创建的类。但是有一个函数需要保护代码,所以我决定使用boost进程间互斥体。每个类在其构造函数中创建或打开相同的Mutex:MyClass::MyClass(){boost::interprocess::named_mutexm_Lock(boost::interprocess::open_or_create,"myLock");}现在关键代码部分被调用了:intMyClass::MyFunction(){boost::interprocess::scoped_locklock(m_Lock,boost::interprocess::try_to_lock);if

c++ - 为什么 std::remove_if 创建这么多闭包?

在此示例中,foo实例除了打印它是复制构造的还是移动构造的之外什么都不做。#include#include#includestructfoo{foo()=default;foo(foo&&){std::coutv;//emptystd::remove_if(v.begin(),v.end(),[x=std::move(x)](inti){returnfalse;});}这会产生以下输出:moveconstructedcopyconstructedmoveconstructedmoveconstructedcopyconstructedcopyconstructed问题:为什么std::

c++ - 相当于 D 中的 remove_if

最近对D语言产生了兴趣。我刚开始学习它,并且来自C++背景。我想知道是否有std::remove_if的等价物。我只在dlang网站上看到删除查看文档。如果没有直接等价物,在D中实现相同结果的正确或最惯用的方法是什么?编辑:我应该补充一点,我是在erase-remove的背景下思考的 最佳答案 有std.algortihm.remove(pred,Range)(Range)(往页面下方看一点)它会按照您的要求进行操作 关于c++-相当于D中的remove_if,我们在StackOverf

c++ - 使用 remove_if 按索引从 C++ vector 中删除

我们可以在C++中使用remove_if,根据对元素进行操作的谓词,在线性时间内从vector中删除元素。boolcondition(doubled){...}vectordata=...std::remove_if(data.begin(),data.end(),condition);如果我的条件不取决于值,而是取决于指数怎么办?换句话说,如果我想删除所有奇数索引元素,或一些任意索引集等?boolcondition(intindex){//returnswhetherthisindexshouldberemoved}vectordata=...std::remove_if(data.

c++ - 使用 std::remove 删除指针元素

我正在努力remove(pvec.begin(),pvec.end(),NULL);删除vector中的NULL指针(其中pvec是vector)但是,编译器给出:“ISOC++禁止比较指针和整数”如何解决?谢谢! 最佳答案 在C++11中,使用nullptr:remove(pvec.begin(),pvec.end(),nullptr);//^^^^^^^否则,执行对指针值的显式转换。如果你的pvec包含类型为foo*的指针,写:remove(pvec.begin(),pvec.end(),static_cast(NULL));/

c++ - 为什么 Vector 不提供 remove() 成员函数而 list 提供?

如果我想从vector中删除所有具有值的元素,我调用removealgorithm然后调用vector的erase成员函数来物理删除它。但在list的情况下,简单调用remove成员函数,它将删除具有该值的所有元素。我不确定为什么vector不提供removeMF而list提供。对于Exp:我想从vectorv中删除值“4”。vectorv;vector::iteratorItr;for(inti=0;i对于列表:list.remove(4);//willdeletealltheelementwhichhasvalue4 最佳答案

c++ - 如何使用 C API 创建嵌套的 Lua 表

我想创建一个表myTable={[0]={["a"]=4,["b"]=2},[1]={["a"]=13,["b"]=37}}使用CAPI?我目前的做法是lua_createtable(L,0,2);intc=lua_gettop(L);lua_pushstring(L,"a");lua_pushnumber(L,4);lua_settable(L,c);lua_pushstring(L,"b");lua_pushnumber(L,2);lua_settable(L,c);循环创建内表。之前,这个循环,我用lua_createtable(L,2,0);intoutertable=lua_

C++11/14 : How to remove a pointer-to-member from a type?

在C++11或C++1y/14中:给定一个TC::*形式的指向成员类型的值,我想得到指向类型例如:#includeusingnamespacestd;structT1{staticvoidf(){coutstructV;templatestructV{staticconstexprT1U1::*pm=&U1::x;};templatestructV{staticconstexprT2U2::*pm=&U2::x;};templatevoidf(Wpm){typedef???T;T::f();}intmain(){f(V::pm);f(V::pm);}有没有办法做到这一点?上面的???是

c++ - 除了避免 'extern C' 并获得 'C++ exception' 之外,将 Lua 编译为 C++ 有什么好处?

我是Lua的新手,我想使用C++将Lua嵌入到我们的游戏项目中。我注意到的第一件事是,允许将Lua编译为C++代码,并且从文档中,我了解到这将消除环绕Luaheader的“externC”,并且错误处理将是C++异常而不是跳远/定跳。我的问题是,除了这两个区别之外,将Lua代码编译为C++代码还有其他真正的好处吗?这两个并不能真正说服我,因为,1)用'externC'包装cheader并不困扰我,2)我们的项目不允许异常,所以我必须更改luaconf.h才能使用longjump/setjump任何方式。 最佳答案 那些是将Lua编译