小编Ole*_*siy的帖子

为什么枚举类优于普通枚举?

我听说有些人因为类型安全而建议在C++中使用枚举.

但这究竟意味着什么?

c++ enums class c++-faq

376
推荐指数
8
解决办法
22万
查看次数

为什么列表初始化(使用花括号)比替代品更好?

MyClass a1 {a};     // clearer and less error-prone than the other three
MyClass a2 = {a};
MyClass a3 = a;
MyClass a4(a);
Run Code Online (Sandbox Code Playgroud)

为什么?

我在SO上找不到答案,所以让我回答一下我自己的问题.

c++ syntax initialization c++11 list-initialization

349
推荐指数
5
解决办法
13万
查看次数

如何修复Android Studio卡住执行Gradle任务?

当我尝试构建/运行项目以及清理它时,Android Studio(Beta)0.8.6卡住了.它保持响应,但Gradle:Executing Tasks消息不会消失(超过20分钟就是我放弃)并且应用程序永远不会运行.

这就是我的尝试:

  • 无效缓存/重启

  • 强制退出并重新启动

  • 从应用程序中删除它(在Mac上)并从官方网站重新下载.

在此输入图像描述

android android-studio

75
推荐指数
3
解决办法
7万
查看次数

如何检测DrawerLayout是否开始打开?

因此,当导航抽屉开始打开时,我有要隐藏的标签.我完成打开时隐藏了它们的代码,但这不是我想要的.

mDrawerToggle = new ActionBarDrawerToggle(
        this,                 
        mDrawerLayout,        
        R.drawable.ic_drawer,  
        R.string.drawer_open,  
        R.string.drawer_close  
) {
    @Override
    public void onDrawerClosed(View view) {
        invalidateOptionsMenu(); 
        setActionBarMode(ActionBar.NAVIGATION_MODE_TABS);
    }

    @Override
    public void onDrawerOpened(View drawerView) {
        invalidateOptionsMenu(); 
        setActionBarMode(ActionBar.NAVIGATION_MODE_STANDARD);
    }

};
mDrawerLayout.setDrawerListener(mDrawerToggle);
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

  • 设置onClickListenermDrawerLayout.onClick永远不会被召唤
  • 设置onTouchListenermDrawerLayout.onTouch永远不会被召唤
  • 研究ActionBarDrawerToggleDrawerLayout课程.找不到类似的东西onDrawerStartedOpening.

android navigation-drawer drawerlayout drawertoggle

53
推荐指数
5
解决办法
4万
查看次数

assert和static_assert有什么区别?

我知道static_assert在编译时进行断言,并且assert- 在运行时,但是在实践中有什么区别?据我所知,内心深处它们是代码片段,如

if (condition == false) exit();
Run Code Online (Sandbox Code Playgroud)
  • 有人能给我一个例子,说明哪些只能 static_assert工作,或者只能 工作assert
  • 他们做任何简单的if声明都做不了吗?
  • 使用它们是不好的做法吗?

c++ assert

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

未定义的行为可以擦除硬盘吗?

摘自"Scott Meyers的Effective C++第3版":

为了强调未定义行为的结果是不可预测的并且可能非常令人不愉快,经验丰富的C++程序员经常说具有未定义行为的程序可以擦除您的硬盘驱动器.

在什么情况下会发生这种情况?

例如,是否可以访问和写入不属于此C++程序或线程的阵列范围内的位置损坏的内存?

c++ memory undefined-behavior

22
推荐指数
4
解决办法
2612
查看次数

协议和代理究竟是什么以及它们在IOS中的使用方式?

我对委托和协议的概念感到困惑.它们是否等同于Java中的接口和适配器类?他们是如何工作的?到目前为止,我所阅读的资源都没有帮助."委托是一种简单而强大的模式,其中程序中的一个对象代表另一个对象或与另一个对象协调.委托对象保留对另一个对象的引用 - 委托 - 并在适当的时候发送消息它." 我不知道这是什么意思.有人可以解释一下它们是什么并给出一个简单的例子吗?提前致谢!

编辑:

据我所知,

1)委托实现协议(接口的另一个名称)

2)对象注册委托(实现协议)

3)对象可以在委托上调用协议方法

因此,委托将对象与协议连接.

如果我错了,请纠正我.

我还是不明白为什么对象本身无法实现协议?它可能会变得如此简单!

delegates protocols ios

20
推荐指数
3
解决办法
4万
查看次数

我什么时候会使用优先级队列?

使用我所知道的优先级队列的唯一例子是Dijkstra算法(用于计算最低成本)

在其他情况下它会有用吗?

algorithm queue priority-queue

20
推荐指数
4
解决办法
2万
查看次数

const变量是否放在只读内存中?

或者是否有一些其他保护措施不能修改它们?

如果它们在只读存储器中是有意义的 - 这就是制作它们的原因const,对吗?

c c++ const

19
推荐指数
3
解决办法
6801
查看次数

警告:此<FrameLayout>可以替换为<merge>标记

我有一个FrameLayout包含一个TextView和两个LinearLayouts:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


    ... a textview and 2 linearlayouts


</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

运行Android Lint后,我收到此警告: This <FrameLayout> can be replaced with a <merge> tag.

为什么会出现此警告?我该怎么做才能解决它(除了忽略)?

xml android android-lint android-framelayout

17
推荐指数
2
解决办法
6663
查看次数