小编Lar*_*der的帖子

如何处理clang中的"退出时间析构函数"警告?

在我的C++ 11代码中,我在下面的例子中得到了clang警告"声明需要退出时析构函数":

static const std::map<int, const someStruct> mymap = {
    {1, {
        "A",
        "B",
        "C"
    }},
    {2, {
        "D",
        "E",
        "F"
    }}
};
Run Code Online (Sandbox Code Playgroud)

据我所知Google,"退出时析构函数"需要以确定的方式销毁main()和静态,以防止由于"已经释放的变量"导致退出时崩溃.是对的吗?有人能更好地解释一下吗?

另外:我能做些什么(我不想禁用警告)?上面的代码仅在一个线程的上下文中使用.

看起来这是Chromium处理这些案件的方式; 那对我的案子来说也是正确的方法吗?

#define CR_DEFINE_STATIC_LOCAL(type, name, arguments) \
  static type& name = *new type arguments
Run Code Online (Sandbox Code Playgroud)

(来源:https://chromium.googlesource.com/chromium/src/+/32352ad08ee673a4d43e8593ce988b224f6482d3/base/basictypes.h)

c++ warnings destructor clang c++11

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

Xcode 4中的"选择中的行排序"

我喜欢Textmate的"选择中的排序行"功能.Xcode 4有类似的东西吗?如果没有,那么整合这样一个功能(插件,Applescript,......)的最佳方法是什么?

sorting xcode plugins applescript textmate

17
推荐指数
1
解决办法
3447
查看次数

如何在没有("<<"||">>")运算符的情况下有效地执行位移?

我正在开发一个OpenGL ES 2.0着色器,我有一个紧密打包的数据,例如在两个字节的块内有三个5位无符号整数.要解压缩这些数据,我显然需要进行位移,但OpenGL ES着色语言不支持此功能(参见第29页http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf)

因此,我执行了许多*2和/ 2操作来模拟位移.

有谁知道更有效/更优雅的方式来做到这一点?有没有我不知道的伎俩?

谢谢!

performance shader bit-manipulation opengl-es glsl

11
推荐指数
2
解决办法
9334
查看次数

使用NSOperations和Coredata在iOS应用中测试API请求层的建议

我开发了一个使用REST API的iOS应用程序.iOS应用程序在工作线程中请求数据,并将解析后的结果存储在核心数据中.所有视图都使用核心数据来可视化信息.REST API变化很快,我无法真正控制界面.

我正在寻找建议如何尽可能简单地执行应用程序的集成测试.我应该针对API还是针对模拟数据进行测试?但是,如果可以使用POST创建资源或使用PUT修改资源,如何正确模拟GET请求?

您使用哪些框架来解决这些问题?我和Frank一起玩,由于iOS应用程序中的快速UI更改,看起来不错但很复杂.您将如何在应用程序中测试"API请求层"?工作线程是队列中的NSOperations - 一切都是异步构建的.有什么建议?

testing rest core-data nsoperation ios

10
推荐指数
1
解决办法
3567
查看次数

如何在GitHub Pull Request代码审查后保持干净的历史记录?

我们的代码在Github上,我们使用Pull Requests来查看代码.作为审核的结果,可以还原或更改提交.这可能会使提交历史变得混乱.rebase不鼓励该命令,因为提交已经"公开可用".

如果您以类似的方式执行代码审查:您如何处理此问题?你如何保持历史清洁?

git github git-rebase pull-request

10
推荐指数
1
解决办法
2502
查看次数

如何将SBT默认日志级别设置为"警告"?

默认SBT日志级别为info(请参阅http://code.google.com/p/simple-build-tool/wiki/RunningSbt).

如何将其设置为默认警告?


@Christian:谢谢!你有这个工作吗?我相应地修改了sbt.boot.properties并通过以下方式传递:

(1)-Dsbt.boot.properties = mysbt.boot.properties

(2)-jar /usr/local/Cellar/sbt/0.7.7/libexec/sbt-launch-0.7.7.jar"@/usr/local/Cellar/sbt/0.7.7/libexec/mysbt.boot.属性"

两种方式都处理我的sbt.boot.properties,但我仍然看到[info]日志消息.覆盖项目设置也不起作用.

我想知道这是否有效.我甚至发现了一个bug.

谢谢,拉尔斯

logging default scala sbt

9
推荐指数
3
解决办法
6147
查看次数

忽略zsh git自动完成中的ORIG_HEAD

我使用oh-my-zsh和git自动完成.

如果我输入git checkout org并点击TAB,我会得到以下结果:

ORIG_HEAD
origin/HEAD
origin/mybranch
Run Code Online (Sandbox Code Playgroud)

如何使自动完成忽略ORIG_HEAD

git zsh zsh-completion

9
推荐指数
1
解决办法
441
查看次数

在ARC ObjectiveC++中使用C++ 11 lambda函数 - 如何正确地完成它?

我有一个ObjectiveC++项目.在ObjectiveC上下文中,我使用ARC和iPhoneSDK 6.在C++中,我使用的是C++ 11编译器.

C++ 11中的Lambda函数正在使用引用捕获变量.ObjectiveC并没有真正支持这个概念,"尝试和错误"我提出了以下解决方案.我不知道有任何陷阱吗?

这个问题有更好的解决方案吗?

typedef std::function<void ()> MyLambdaType;

...
// m_myView will not go away. ARC managed.
UIView * __strong m_myView;

...
// In Objective C context I create a lambda function that calls my Objective C object
UIView &myViewReference = *m_myView;
MyLambdaType myLambda = [&myViewReference]() {
    UIView *myViewBlockScope = &myViewReference;
    // Do something with `myViewBlockScope`
}

..
// In C++11 context I call this lambda function
myLambda();
Run Code Online (Sandbox Code Playgroud)

lambda objective-c objective-c-blocks automatic-ref-counting c++11

8
推荐指数
1
解决办法
3110
查看次数

git存储库中的依赖管理(使用子模块)

我有一个相当大的项目,有很多依赖项.项目存储在git存储库中,依赖项存储在作为子模块链接的专用git存储库中.依赖项可以具有进一步的依赖性(同样,使用git子模块).

这很好用.但是,如果两个依赖项同时需要第三个依赖项,则会遇到更新问题.

依赖关系图如下所示:

[Main Repo]
  |
  |-- [ModuleA]
  |       |
  |       \-- [ModuleC]
  |
  \-- [ModuleB]
          |
          \-- [ModuleC]
Run Code Online (Sandbox Code Playgroud)

现在我更新ModuleA和ModuleB中的子模块指针.这样两个模块都是自包含的.但是,这是很多工作.

在较大的项目中,这个问题通常如何解决?我正在寻找解决此类问题的最佳实践.

谢谢!

git dependencies project-management git-submodules

8
推荐指数
1
解决办法
1764
查看次数

ARM(iPhone 3GS/4)上的快速浮点到int转换和浮点精度

我读过(http://www.stereopsis.com/FPU.html)中提到的(在x86上将float转换为int的最快方法是什么).有谁知道缓慢的简单演员(参见下面的代码片段)是否也适用于ARM架构?

inline int Convert(float x)
{
  int i = (int) x;
  return i;
}
Run Code Online (Sandbox Code Playgroud)

要应用FPU文章中提到的一些技巧,您必须设置浮点运算的精度.我如何在ARM上做到这一点?

在ARM体系结构上,最快的浮点转换是什么?

谢谢!

floating-point optimization arm fpu

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