小编Ale*_*x B的帖子

找出编译时整数类型的最小值/最大值的位数

有没有办法在编译时找出整数类型的最小值/最大值的位数,以便它适合作为模板参数放置?

理想情况下,将会有一个现有的解决方案,例如Boost MPL.如果没有,我正在寻找一些手动编码解决方案的指针.

c++ templates metaprogramming

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

看似跳进自己的"召唤"指令

我有一些C++代码

#include <cstdio>
#include <boost/bind.hpp>
#include <boost/function.hpp>

class A {
public:
    void do_it() { std::printf("aaa"); }
};

void
call_it(const boost::function<void()> &f)
{
    f();
}

void
func()
{
    A *a = new A;
    call_it(boost::bind(&A::do_it, a));
}
Run Code Online (Sandbox Code Playgroud)

哪个gcc 4编译成以下程序集(from objdump):

00000030 <func()>:
  30:   55                      push   %ebp
  31:   89 e5                   mov    %esp,%ebp
  33:   56                      push   %esi
  34:   31 f6                   xor    %esi,%esi
  36:   53                      push   %ebx
  37:   bb 00 00 00 00          mov    $0x0,%ebx
  3c:   83 ec 40                sub    $0x40,%esp
  3f:   c7 04 …
Run Code Online (Sandbox Code Playgroud)

c++ assembly gcc g++

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

如何将boost :: shared_ptr(或另一个智能指针)附加到对象父级的引用计数器?

我记得之前遇到过这个概念,但现在却无法在谷歌中找到它.

如果我有一个类型为A的对象,它直接嵌入一个B类型的对象:

class A {
    B b;
};
Run Code Online (Sandbox Code Playgroud)

我怎么能有一个智能指针B,例如boost::shared_ptr<B>,但使用引用计数A?假设A它自己的实例是堆分配的,我可以安全地使用,例如,获得它的共享计数enable_shared_from_this.

c++ boost smart-pointers shared-ptr

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

基本C++递归程序问题

//This program finds the GCD of two numbers using a recursive function call via the
//Euclidean algorithm

#include <iostream>
#include <cmath>
using namespace std;

int GCD (int A, int B);

int main()
{
    int A = 45, B = 55;

    cout << "The GCD is " << GCD(A,B) << endl;
    //test
    return 0;
}

int GCD (int A, int B)
{
    A = abs(A);
    B = abs(B);


    if (A > B)
    {
        A = A - B;
        return GCD (A, …
Run Code Online (Sandbox Code Playgroud)

c++ recursion

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

用于制作GUI的C++库

我正在寻找一个简单的C++库来制作GUI.我试过wxWidgets和GTK,但我认为两者都很复杂.

我希望你对使用什么有自己的看法.我应该学习wxWidgets还是你知道一个更好的?

谢谢.

c++ windows user-interface

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

为什么pprint模块对dict键的排序与打印不同?

pprint按字母顺序排序键盘,print按默认顺序对它们进行排序.

from pprint import pprint
d = {'foo': 1, 'bar': 2, 'baz': 3}

pprint(d)
# {'bar': 2, 'baz': 3, 'foo': 1}

print d
# {'baz': 3, 'foo': 1, 'bar': 2}
Run Code Online (Sandbox Code Playgroud)

文件中pprint提到了这一点,但没有说明原因.为什么会出现差异?

python

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

如何使用原子增量和比较和交换操作处理整数溢出?

我正在编写一些实现(无符号)整数计数器的代码.

  1. 它可以从任意数量的线程中使用.
  2. 线程每次都应该获得一个唯一值,直到溢出.
  3. 如果整数类型范围溢出,则应返回零.
  4. 我有处理原子增量函数(返回旧值)和原子比较和交换函数.

到目前为止,我提出的所有场景都会遇到溢出的竞争条件.是否可以使用这些约束来实现计数器?

c++ multithreading atomic

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

如何在结构类型内联中初始化指针成员?

使用类型:

type A struct {
   B int, C *int
}
Run Code Online (Sandbox Code Playgroud)

如何在不创建临时值的情况下将指针成员初始化为非零值内联?

a := A{
    B: 42,
    C: ?,
}
Run Code Online (Sandbox Code Playgroud)

go

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

RTOS常用的设计模式(VXworks)

任何人都可以帮我解决RTOS常用的设计模式吗?
在VXworks中,哪种模式更可取?

c c++ embedded rtos vxworks

0
推荐指数
2
解决办法
2381
查看次数