小编Ben*_*hug的帖子

GCC:由于数据类型的范围有限,比较总是如此 - 在模板参数中?

我想写一个模板,它返回可以表示给定数字的最小有符号整数类型.这是我的解决方案:

/**
 * Helper for IntTypeThatFits.
 * Template parameters indicate whether the given number fits into 8, 16 or 32
 * bits. If neither of them is true, it is assumed that it fits 64 bits.
 */
template <bool fits8, bool fits16, bool fits32>
struct IntTypeThatFitsHelper { };

// specializations for picking the right type
// these are all valid combinations of the flags
template<> struct IntTypeThatFitsHelper<true, true, true> { typedef int8_t Result; };
template<> struct IntTypeThatFitsHelper<false, true, true> { …
Run Code Online (Sandbox Code Playgroud)

c++ comparison gcc templates range

8
推荐指数
2
解决办法
7229
查看次数

模板基类的子类的模板特化

这个问题有点难以解释,所以我将从一个例子开始:

我有一个类模板,它将一个类型和一个整数常量作为模板参数,我有许多子类,它们来自该模板的实例化:

template <class V, int i>
struct Base 
{
    static void doSomething() { cout << "something " << i << endl; };
};

struct Child : public Base<int,12>
{
};
Run Code Online (Sandbox Code Playgroud)

我想将这些类与其他模板一起使用(我们称之为Test),它具有不同类型的特化.因为对于从Base的任何实例化派生的所有类,行为应该完全相同,所以我想只定义一个处理从Base派生的所有类的Test专门化.

我知道我不能直接专注于Base <V,i>,因为这不会检测子类.相反,我的第一种方法是使用Boost的enable_if和类型特征:

// empty body to trigger compiler error for unsupported types
template <class T, class Enabled = void>
struct Test { };

// specialization for ints,
// in my actual code, I have many more specializations here
template <class Enabled>
struct Test <int, Enabled> 
{
    static void …
Run Code Online (Sandbox Code Playgroud)

c++ generics inheritance template-specialization c++11

6
推荐指数
1
解决办法
3387
查看次数

大型Flash/AS3项目的工作流程

我目前正在开发一个相当大的UI重型Flash游戏.我们的团队现在已经为此工作了大约9个月.我们都没有任何以前的Flash经验,因此我们在此期间不断改进我们的工作流程.但是,我们仍然觉得我们现在所做的并不是最佳的,特别是编码员和艺术家之间的界面,所以我想知道其他团队是如何工作的.

理想的工作流程应满足以下要求:

1.重用的UI元素只定义一次

这意味着,如果我们想要更改字体或按钮样式,我们不希望通过所有菜单并手动更改它们.我们希望它们在一个中心位置定义,并且仅从那里引用.如果资产不仅在编辑时共享,而且在运行时共享,即它们仅被下载一次,则会获得奖励积分.

2.一切都按需加载

目前,我们有两个不同的加载步骤:首先,我们加载菜单库.完成后,玩家可以与所有菜单进行交互.然后,我们开始加载实际的游戏数据.但是,初始加载时间仍然太长,导致我们失去许多潜在的参与者.我们真正想做的是只加载主菜单所需的最低限度,然后仅在播放器尝试实际打开相应菜单时加载其他所有内容.Zuma Blitz做得非常好.

没有编码员的帮助,艺术家可以进行微小的改变

如果在不改变实际功能的情况下重新设计菜单,艺术家应该可以在Flash CS6中自行完成.这需要在艺术和代码之间建立清晰的界面,艺术家也应该可以在将更改发送给编码人员之前对其进行测试和调试.

-

我们当前的工作流程如下所示:艺术家在Flash CS6中将屏幕构建为MovieClip并将其导出为SWF.在代码端,从屏幕SWF加载MovieClip,并将它们用作基于PureMVC的系统中的View类.Mediators按实例名称访问视图中的文本字段等元素.

这很容易出错,因为没有中心位置来定义接口(即实例名称).编码器和艺术家之间需要大量的通信开销.此外,它还会在代码和动画片段的内部结构之间创建依赖关系.当艺术家想要对其应用某些效果时,他们无法将文本字段附加到不同的子动画片段.

我们正在尝试使用基于事件的界面,该界面要求艺术家向movieclip添加几行代码.这比以前更不易出错且相互依赖,但除非我们编写额外的测试和调试工具,否则它仍然不能完全满足(3).这一定是一个常见的问题,我很难想象没有更简单的方法.

对于(2),我们也开始构建一个自制的解决方案,但同样,这是一个常见的任务,必须有一些我们可以使用的东西.

那么,有经验的Flash开发人员如何管理这样的大型项目?

flash workflow user-interface actionscript-3 flash-cs6

4
推荐指数
1
解决办法
707
查看次数