小编Any*_*orn的帖子

C++:struct/class中的构造函数与初始化列表

可以使用初始化列表创建结构/类的对象(没有构造函数).为什么在构造函数的 struct/class上不允许这样做?

struct r { int a; };
struct s { int a; s() : a(0) {} };
r = { 1 }; // works
s = { 1 }; // does not work
Run Code Online (Sandbox Code Playgroud)

c++ constructor struct class initializer-list

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

C++ Adob​​e源库的印象?

我偶然发现了Adobe源库ASL.在MIT许可下,它是一组类似于boost的模板和功能.我发现库中的一些实用程序非常有用,现在我考虑使用它.

然而,图书馆似乎很简单.

  • 你自己用过ASL吗?如果是这样,你的印象是什么?你推荐它吗?
  • 它是否适用于各种编译器和平台,例如IBM C++,ICC,g ++?
  • 你遇到过怪癖/意想不到的事吗?

谢谢

c++ asl

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

C++,这个goto语句是否合理?

我稍微改变了标题因为我认为这是更合适的问题.

你会重构它(似乎合法使用goto)?如果,您将如何重构以下代码以删除转到语句?

if (data.device) {
    try {
        ...
    }
    catch(const std::exception&) { goto done; }
    ... // more things which should not be caught
done: ;
}
Run Code Online (Sandbox Code Playgroud)

完整的声明

#ifdef HAVE_GPU
            // attempt to use GPU device
            if (data.device) {
                try {
                    Integral::Gpu eri(S, R, Q, block.shell());
                    eri(basis.centers(), quartets, data.device);
                }
                // if GPU fails, propagate to cpu
                catch(std::exception) { goto done; }
                data.device += size;
                host_index.extend(block_index);
                block_index.data.clear();
            done: ;
            }
#endif
Run Code Online (Sandbox Code Playgroud)

谢谢

在看过大多数人的偏好之后,我决定带着旗帜,但是约克先生发表评论.

谢谢大家

c++ exception-handling goto

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

数组维度中的C++模板参数

我有以下代码使用模板和数组维度作为模板非类型参数

template<int n> double f(double c[n]);
...
double c[5];
f<5>(c);  // compiles
f(c);  // does not compile
Run Code Online (Sandbox Code Playgroud)

编译器是否应该能够在没有显式模板参数的情况下实例化第二个f?我正在使用g ++ 4.1

c++ templates

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

C++标准/事实上的STL算法包装器

是否存在标准算法的标准/事实标准(boost)包装器,它们与定义开始和结束的容器一起使用.让我告诉你我对代码的意思:

// instead of specifying begin and end
std::copy(vector.begin(), vector.end(), output);
// write as
xxx::copy(vector, output);
Run Code Online (Sandbox Code Playgroud)

我知道它可以很容易地写出来,但我正在寻找一种无处不在的东西.谢谢.

c++ algorithm containers boost wrapper

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

带有可选数字前缀的emacs交互式功能

如何指定具有可选数字前缀的函数,如果没有,它会提示输入数字?基本上goto-line表现如何?

(defun my-function(&optional  n)
  ; I have tried
  (interactive "N") ; reads string, no prompt
  (interactive "p") ; defaults to one
  (interactive (if (not n) (read-number "N: "))) ; runtime error
Run Code Online (Sandbox Code Playgroud)

那我怎么做工作?谢谢

lisp emacs prefix optional

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

模板中的C++ rvalue临时值

能否请您解释一下以下机制的区别:

int function();

template<class T>
void function2(T&);

void main() {
    function2(function()); // compiler error, instantiated as int &

    const int& v = function();
    function2(v); // okay, instantiated as const int&
}
Run Code Online (Sandbox Code Playgroud)

我的推理在实例化方面是正确的吗?为什么不首先实例化为const T&

谢谢

c++ templates rvalue

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

简化表达式k/m%n

简单的问题是,是否可以通过更便宜的操作来简化(或替换除法或模数)

(k/m)%n
Run Code Online (Sandbox Code Playgroud)

其中变量是整数,运算符是C样式除法和模运算符.

让我稍微重新解释一下问题,除了变量是base2的情况,在什么条件下(例如某些变量可能是常量)可以简化表达式(或者使用base2操作部分重新表达)来删除除法或模数?

这是我学习数论的方法,特别是base2技巧,而不是练习性能优化

谢谢

language-agnostic algorithm math

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

C++关闭hack

这样的闭包实现有什么问题(从python hack中被盗)?

void function(int value) {
    struct closure {
        closure(int v = value) : value_(value) {}
        private: int value_;
    };
    closure c;
}
Run Code Online (Sandbox Code Playgroud)

经过进一步调查,它出现在成员函数中,局部变量不能用作默认值,但是对象变量可以.

c++ closures

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

检测整数溢出

我正在使用一个大型C库,其中使用了一些数组索引int.我需要找到一种在运行时捕获整数溢出的方法,以便缩小到有问题的代码行.Libc手册说明:

FPE_INTOVF_TRAP整数溢出(在C程序中不可能,除非您以特定于硬件的方式启用溢出捕获).

但是gcc选项-ffpe-trap表明那些只适用于FP数字?
那我怎么做启用整数溢出陷阱?我的系统是Xeon/Core2,gcc-4.x,Linux 2.6

我已经查看了类似的问题,但他们都很熟悉修改代码.我需要知道哪个代码首先是有问题的.
如果Xeons无法捕获溢出,哪些处理器可以?我也可以访问非emt64机器.

我找到了一个专为llvm设计的工具:http: //embed.cs.utah.edu/ioc/ 似乎没有gcc/icc的等价物?

c debugging operating-system

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