小编Nat*_*iss的帖子

在头文件中执行const std :: string的正确方法?

我正在写一个Cocos2D-X游戏,其中玩家,敌人和其他角色将他们的属性存储在a中CCMutableDictionary,这有点像装饰类std::map<std::string, CCObject*>.可以通过该CCMutableDictionary::objectForKey(const std::string& key)方法访问字典中的值.

现在,在我的许多.cpp文件包含的头文件中,我有一些const char * const字符串用于访问字典中的值,如下所示:

// in Constants.h
const char* const kAttributeX = "x";
const char* const kAttributeY = "y";

// in a .cpp file
CCObject* x = someDictionary->objectForKey(kAttributeX);
Run Code Online (Sandbox Code Playgroud)

所以,如果我错了,请纠正我,但每当我使用a 调用上述方法之一时,std::string正在调用复制构造函数并且临时std::string存在于堆栈中,对吧?objectForKeyconst char* const

如果是这样,我觉得如果那些常量属性键已经是std::string对象,那么在运行时它会更有效.但是我该如何以正确的方式做到这一点?

在Constants.h文件中定义它们,如下所示编译好,但我觉得有些事情是不对的:

// in Constants.h
const std::string kAttributeX = "x";
const std::string kAttributeY = "y";
Run Code Online (Sandbox Code Playgroud)

如果已经提出这个问题我很抱歉.我似乎找不到我在StackOverflow上寻找的确切答案.

c++ static const stdstring

12
推荐指数
1
解决办法
2万
查看次数

How to Setup a C++ Module Map in Xcode?

如何设置一个Xcode(6.4+)项目来利用C++模块来获得一个还没有模块映射的外部C++库?

c++ import xcode module export

6
推荐指数
0
解决办法
389
查看次数

在Spidermonkey JS引擎中异步调用回调函数

使用Spidermonkey v27:

什么是"保留"然后从C++异步调用临时JS函数的正确方法?

JS代码:

myFunction(function(){
    console.log("The function works");
});
Run Code Online (Sandbox Code Playgroud)

C++代码:

bool js_myFunction(JSContext* cx, uint32_t argc, jsval* vp)
{
    if (argc == 1)
    {
        implement_async_function(cx, vp);
        JS_SET_RVAL(cx, vp, JSVAL_NULL);
        return true;
    }
    return false;
}

static JSContext* savedContext;
static jsval* savedVal;
void implement_async_function(JSContext* cx, jsval* vp)
{
    // if the function is called immediately, everything is okay!
    jsval retVal;
    JS_CallFunctionValue(cx, nullptr, *vp, 0, nullptr, &retVal);
    // "The function works"

    // if some work has to be done before calling the callback... …
Run Code Online (Sandbox Code Playgroud)

javascript c++ spidermonkey

5
推荐指数
1
解决办法
659
查看次数

将3d 4x4旋转矩阵转换为2d

假设我们有一个4x4矩阵,其索引如下:

00 01 02 03
10 11 12 13
20 21 22 23
30 31 32 33
Run Code Online (Sandbox Code Playgroud)

如何将此矩阵中包含的旋转数据(忽略z轴,如果有帮助)转换为单个2d旋转角度(以弧度表示)?

背景:我有一个从Blender导出为Collada格式的3D .dae动画.动画技术上是2d,所有z轴值都是0.我正在尝试将4x4矩阵转换为2d平移,旋转和缩放数据.

3d 2d matrix collada

3
推荐指数
1
解决办法
4125
查看次数

标签 统计

c++ ×3

2d ×1

3d ×1

collada ×1

const ×1

export ×1

import ×1

javascript ×1

matrix ×1

module ×1

spidermonkey ×1

static ×1

stdstring ×1

xcode ×1