我有一个我想绑定到lua的类.减少的代码可能是:
class CSprite2D{
void setPosition(glm::ivec2 val) { m_position = val; }
void setPosition(int posX, int posY) { m_position.x = posX; m_position.y = posY; }
static void exposeAPI(lua_State* L,const unsigned char* data)
{
assert(L);
luabind::module(L)[
luabind::class_<CSprite2D>("CSprite2D")
.def("setPosition",(void(*)(int,int))&CSprite2D::setPosition)
];
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,编译器抛出并出错:
Error 1 error C2440: 'type cast' : cannot convert from 'overloaded-function' to 'void (__cdecl *)(int,int)' c:\directo\gameprojects2008\zeleste2d\src\graphics\gpx\sprite2d.cpp 74
Error 2 error C2780: 'luabind::class_<T> &luabind::class_<T>::def(luabind::detail::operator_<Derived>)' : expects 1 arguments - 2 provided c:\directo\gameprojects2008\zeleste2d\src\graphics\gpx\sprite2d.cpp 74
Error 3 error C2784: 'luabind::class_<T> &luabind::class_<T>::def(luabind::detail::operator_<Derived>,const Policies &)' : …Run Code Online (Sandbox Code Playgroud) 我有这个代码:
time_t tt = time(NULL);
tm* currentTime = gmtime(&tt);
tm* storedTime = gmtime(&m_time);
Run Code Online (Sandbox Code Playgroud)
其中m_time是构造时的time_t成员数据集.当我使用此数据成员设置storedTime时,当前时间获取相同的值,就像两个tm指针指向同一个变量一样.这是预期的行为吗?我怎么能分开tm结构来比较时间?
谢谢
如果我输入控制台:
$ echo $COCOS_ROOT
Run Code Online (Sandbox Code Playgroud)
我得到了正确的路径,因为我在.bashrc文件中定义了这个变量.但是,当我执行此代码时,
SET(COCOS_HOME "$ENV{COCOS_ROOT}")
if (COCOS_HOME)
message( STATUS "COCOS2D installed in" ${COCOS_HOME})
else()
message( WARNING "COCOS2D is undefined")
endif()
Run Code Online (Sandbox Code Playgroud)
未定义环境var.如果我在控制台制作中定义ENV var:
$ export COCOS_ROOT=/path/to/cocos
Run Code Online (Sandbox Code Playgroud)
然后使用cocos2D路径正确设置脚本.
我的问题是:我需要在哪里定义cmake找到的env变量?
谢谢
我正在尝试缩小一个大型存储库以减少服务器负载。我正在使用命令
git clone --depth 1000 url
Run Code Online (Sandbox Code Playgroud)
但是当克隆完成时,我只有一个分支。未克隆的分支是新的(3 周左右),克隆的历史记录有 3 个月,因此这些分支必须在该历史记录中。如果我尝试搜索所有分支
git branch -a
Run Code Online (Sandbox Code Playgroud)
只显示了一个分支。
有任何想法吗?提前致谢!
在某些类中,我有一个带有指针的静态std :: map.我的问题是,如果我需要在程序结束时删除或自动释放此内存.我关心的是当删除std :: map时,是否通过析构函数正确删除了存储在内部的指针.
谢谢.
我正在制作一个程序,我想向用户提供有关每1000个元素处理的估计时间的信息.我用这种方式计算时间:
理论上,处理的元素和经过的时间之间的关系等于其余元素和其余时间之间的关系,所以我的公式是:
(C/Tp)=(MAX - C)/(Te - Tp)
所以我需要通过以下方式解决Te:
(Te-Tp)=(MAX-C)Tp/C.
最后:
Te =(MAX-C)Tp/C + Tp
我认为这个解决方案是正确的,但很明显,随着C和Tp的增长,操作不会倾向于0 ,所以我确信我做的是一个愚蠢的错误,但我找不到.
请问一些想法?
试图制作模板,但我在gcc4中有错误但在VS2008中没有.这是失败的代码:
#pragma once
#ifndef _ZELESTE_ZEL_GPX_GENERALMANAGER_H_
#define _ZELESTE_ZEL_GPX_GENERALMANAGER_H_
#include "../internal/cuCoreLib.h"
#include "boost/functional/hash.hpp"
#include "boost/ptr_container/ptr_map.hpp"
namespace z3d{
namespace core{
template<class Key, class Value>
class cuManager
{
boost::ptr_map<Key, Value> m_ItemMap;
public:
/**
* Default constructor
*/
cuManager(void){}
/**
* Get a vector that contain the keys of the elements contained in the manager.
* @return an const std::vector of type Key
*/
const std::vector<Key> getKeys()
{
boost::ptr_map<Key,Value>::iterator itr = m_ItemMap.begin();
std::vector<Key> v;
while(itr != m_ItemMap.end())
{
v.push_back(itr->first);
++itr;
}
return v;
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试为游戏引擎设计任务调度程序.任务可以是动画,触发控制器等.
我的问题是选择什么容器.这个想法是:当您插入新任务时,容器必须重新排序并将任务放在适当的位置.执行后,任务可能会更改并再次安排或删除.这主要是推和流行.
但是,如果可能的话,如果我可以随机访问一个元素,那将会很好,但并不重要.无论容器是否支持具有相同键的一个或多个元素.
我认为优先级队列符合我的需求,但我看到它基于矢量实现,我认为这个容器必须以某种方式优化推送和弹出.
意见?
有时微软会让我感到头晕目眩.当我尝试调试我的项目时,VS会抛出一个消息框,显示以下错误:找不到msvcr90d.dll,重新启动软件可能会解决此错误.但是在结果窗口中,在加载simbols时,会显示以下行:
'GLFW_Window.exe': loaded 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcr90d.dll', Loaded symbols.
Run Code Online (Sandbox Code Playgroud)
如果我转到此文件夹,DLL实际上存在.此外,我已尝试下载已正常工作但仍然失败的相同项目的先前版本.卸载可以删除这个dll吗?(这不是一台干净的机器,而是我的个人机器).
顺便说一句,如果我手动将这个文件夹的DLL复制到我的项目中,我会得到一个关于make一个清单的奇怪错误.
你们有人能帮助我吗?提前致谢
我正在宣布这样一个类:
#include "BindableInterface.h"
#include "../LuaHelper.h"
#include <map>
#include <string>
namespace utils{
class CLuaHelper;
};
namespace zel{
namespace utils{
class CAPIBindManager
{
typedef std::map<std::string, CBindeableInterface*> t_exposedClassMap;
t_exposedClassMap m_classesToExpose;
utils::CLuaHelper* m_luaHelper;
public:
bool exportClasses(const unsigned char* data);
bool executeLuaChunk(const std::string fileName, const std::string funtionName);
bool addClassToExpose(CBindeableInterface* bindableInterface, const std::string alias);
CAPIBindManager(void);
~CAPIBindManager(void);
};
};
};
Run Code Online (Sandbox Code Playgroud)
但是我得到了一个编译错误,CLuaHelper不是zel :: utils的成员.CLuaHelper声明为utils :: CLuaHelper(没有zel)我如何声明这个类.AFAIK,前瞻性声明可能会解决这个问题
有任何想法吗??
为什么这个代码
std::string a = read_file_name();
const char* code = a.c_str();
Run Code Online (Sandbox Code Playgroud)
不同于
const char* code = read_file_name().c_str();
Run Code Online (Sandbox Code Playgroud)
似乎等于但结果却不同.第一个副本的内容a来code,另一个没有.该方法read_file_name()返回一个我正在使用MSVC的字符串