小编Qua*_*key的帖子

JE/JNE和JZ/JNZ之间的区别

在x86汇编代码,都是JEJNE完全一样的JZJNZ

x86 assembly

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

'round'不是'std'的成员

我试着编译这段代码:

#include <cmath>
double gravity (double level) {
    return 0.02 * std::round(level);
}
Run Code Online (Sandbox Code Playgroud)

但海湾合作委员会告诉我:

error: 'round' is not a member of 'std'
Run Code Online (Sandbox Code Playgroud)

我知道我以前roundISO C++ 98中多次使用过该功能.与众不同的是,round::round这两个工作.

是什么赋予了?

更新:我正在编译g++ -std=c++98 -Wall -pedantic.切换到std=c++0x工作.

但是为什么不合格/匿名round并且::round两者都有效std::round呢?

c++ g++

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

reinterpret_cast一个整数浮动是否安全?

注意:我static_cast原来错误地问过; 这就是为什么最重要的答案static_cast首先提到的原因.

我有一些二进制文件,带有小的字节序浮点值.我想以与机器无关的方式阅读它们.我的字节交换例程(来自SDL)在无符号整数类型上运行.

在整数和浮点数之间简单投射是否安全?

float read_float() {
    // Read in 4 bytes.
    Uint32 val;
    fread( &val, 4, 1, fp );
    // Swap the bytes to little-endian if necessary.
    val = SDL_SwapLE32(val);
    // Return as a float
    return reinterpret_cast<float &>( val );  //XXX Is this safe?
}
Run Code Online (Sandbox Code Playgroud)

我希望这个软件尽可能便携.

c++ floating-point casting

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

C++中POD类型的默认初始化

我知道默认情况下会初始化一些POD变量,但其他变量不是.(POD类型包括int,float指针,联合,POD类型的数组,POD类型的结构等)

范围和存储类如何影响POD类型的默认初始化?

具体而言,将隐式初始化以下哪项:

  • 具有自动存储的局部变量
  • 静态局部变量
  • 静态全局变量
  • 外部变量
  • 分配的变量 new
  • 类的POD成员(没有在构造函数中显式初始化)

我知道存在一些与这些情况有关的问题,但没有全面的问题(它们只涉及具体情况).

c++ initialization pod

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

我需要<button>上的role ="button"吗?

我在Bootstrap的所有示例中都注意到了使用button元素,它们包括role="button"(和type="button"),例如:

<div class="dropdown">
    <button id="dLabel" type="button" role="button" data-toggle="dropdown" 
     aria-haspopup="true" aria-expanded="false">
        Dropdown trigger <span class="caret"></span>
    </button>
    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
    ...
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

无法访问的软件是否已经知道某个button元素是否可以充当按钮?有什么理由我应该包含role="button"和/或type="button"在我的代码中?

html5 accessibility wai-aria twitter-bootstrap

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

用于2D/3D游戏开发的Qt库

作为一个爱好,我一直在努力改造旧的视频游戏,我想尽可能避免重新发明轮子.游戏基于GUI,但GUI需要在外观方面进行自定义,并且还需要在几个游戏屏幕上使用3D OpenGL渲染.

为了给你一个想法,这里是最初原型的截图:

在此输入图像描述

使用了大量动画,3D也是如此,但GUI小部件的行为与标准桌面应用程序中的大致相同.

到目前为止,我一直在使用自己的GUI库(它不健壮或完整,我遇到了一些问题).

考虑到它的声誉和令人印象深刻的功能,以及Qt网站上的一些很好的截图,我一直在考虑迁移到Qt.但我之前从未使用过Qt,所以我真的不知道它的功能是什么,或者需要多少时间来学习它.(注意我使用过FLTK).

我的问题是:在这种情况下使用Qt是否可行/可行?

更新:在Qt中模拟一些游戏画面后,我决定不使用它.虽然它支持我开箱即用的许多功能(特别是通过样式表),但我需要支持基于位图的自定义预渲染字体(我无法转换/替换它们).我不能将QFont子类化,或者在未来的Qt版本中重新实现它.也就是说,Qt(它的易用性和良好的文档)给我留下了非常深刻的印象.我将为我自己的引擎借用它的一些功能.感谢所有提供输入的人.

c++ qt

7
推荐指数
1
解决办法
5731
查看次数

flock(1)未能解除锁定

我有一组shell脚本,使用truecrypt和rsync在我的系统上执行备份.我想避免这些各种脚本同时运行的任何可能性.

它们flock在子shell中使用,如联机帮助页中所述:

(
    flock -n 9 || exit 1
    # ... commands executed under lock ...
) 9>/var/lock/mylockfile
Run Code Online (Sandbox Code Playgroud)

但是,锁定总是无法获取后续运行(退出状态为1).

然而fuser /var/lock/mylockfile,lsof /var/lock/mylockfile什么都不显示.

现在,如果我添加命令flock -u手动解锁,如下所示:

(
    flock -n 9 || exit 1
    # ... commands executed under lock ...
    flock -u 9
) 9>/var/lock/mylockfile
Run Code Online (Sandbox Code Playgroud)

然后脚本工作.

我使用flock得当吗?flock -u在街区内打电话是否安全?

仅供参考这些麻烦的脚本是在命令块中调用truecrypt的脚本.

linux shell locking

7
推荐指数
1
解决办法
3254
查看次数

LEA是x86中唯一一条内存操作数不能访问内存的指令吗?

我正在使用libdis,来自这个混蛋的x86反汇编程序库,我正试图找出哪些指令访问内存.

参考这两条说明:

mov eax, [ebx + 10]
lea eax, [ebx + 10]
Run Code Online (Sandbox Code Playgroud)

libdis,两者都列出了指令类型insn_mov,并且地址操作数在两种情况下都具有相同的标志.因此,我可以判断是否访问内存的唯一方法是查看指令助记符.

因此我的问题是:LEA是使用内存操作数的唯一指令,它实际上并不访问内存吗?引用的任何链接都很好.

x86 assembly

6
推荐指数
2
解决办法
604
查看次数

无法从派生指针访问公共基础成员

为什么这段代码不能编译?(gcc 4.7.0)

// Class with a simple getter/setter pair.
class Base {
public:
    Base () : m_Value(0) {  }

    virtual ~Base () {  }

    // Getter
    virtual int value () { return m_Value; }

    // Setter
    virtual void value (int Val) { m_Value = Val; }

private:
    int m_Value;
};

// Derived class overrides the setter.
class Derived : public Base {
public:
    void value (int Val) {
            // do some stuff here...
    }
};

int main()
{
    Derived * …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism inheritance

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

操作员>>应该清空容器吗?

我正在重构一些从文件中读取整数容器的代码.我已将公共代码移动到这些流提取器中:

std::istream &operator>>(std::istream &in, std::vector<int> &list);
std::istream &operator>>(std::istream &in, std::map<int, std::vector<int>> &graph);
Run Code Online (Sandbox Code Playgroud)

我的问题是这些函数是否应该在写入之前清除容器,或者只是向它们插入/附加数据.(在我的特定情况下,它没关系,但为了代码重用,我想知道.)

在这些情况下,C++中是否有约定?我正在尝试根据最小惊喜原则进行编码.

c++ refactoring iostream

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