小编out*_*ind的帖子

为什么operator =返回引用而不是const引用

最初的问题与重载operator =有关,我喜欢分享我的发现,因为找到它们对我来说是非常重要的.我无法想象使用(a = b)作为左值的合理例子.在IRC和谷歌的帮助下,我发现了下一篇文章:http: //msdn.microsoft.com/en-us/magazine/cc301415.aspx

它提供了两个例子.

  (a=b)=c

  f(T& );
  f(a=b)
Run Code Online (Sandbox Code Playgroud)

但两者都不好,我相信这是不好的做法.第二个给我同样的感觉.你能提供更好的例子吗?为什么它应该是非常数的?

c++

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

如何在C语言中捕获整数除零异常?

众所周知如何通过使用来捕获浮点除零异常

signal(SIGFPE, handler)
Run Code Online (Sandbox Code Playgroud)

但即使我设置控制字,它也不会捕获整数除零问题

_control87(0, _MCW_EM ); (MS VC 2010)
Run Code Online (Sandbox Code Playgroud)

SubQuestion_1:如何在不使用SEH EXCEPTION_INT_DIVIDE_BY_ZERO的情况下在Windows中的C程序中捕获整数除零?(在Unix/Linux中,这可以通过使用标准信号/ SIGFPE技术来完成)

编辑:信号是ANSI C信号处理方法.
_control87是设置浮点控制字的标准Windows函数.

类似的问题:如何统一处理所有错误,包括内部C库错误

注(来自ISO/IEC 9899:TC2 Annex H.2.2):

"有符号的C整数类型int,long int,long long int和相应的无符号类型与LIA?1兼容.... C的无符号整数类型在LIA?1意义上是'modulo''溢出或out-of-bounds结果静默包装.定义有符号整数类型也是模数的实现不需要检测整数溢出,在这种情况下,只需要检测整数除零. "

?最终解决方案:

对于Windows:它会引发SEH异常.所以它可以通过使用__try __except来捕获.作为可能的解决方案,可以使用SEH转换来处理SEH异常并将它们转换为所需功能的调用.它不是一种"自然"的方式,但它似乎是唯一的方式.

对于Unix:它可以用signal/SIGFPE解决方案捕获.或者查看wiki以获取FPE_INTDIV解决方案(http://rosettacode.org/wiki/Detect_division_by_zero#C).

由于GMan对"未定义的行为"是正确的,我选择他的答案是正确的.

注意:检查VC\crt\src\winxfltr.c:_XcptActTab数组很有意思:)

c math

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

当插件中需要Activator类/"Bundle-Activator"时,它不是吗?

我为我的内容类型实现了"新建向导"插件.测试它 - 它的工作原理.

然后我发现没有声明Bundle-Activator,也没有定义Activator类.

问题是 - 插件中真的需要Activator类.什么时候根本不需要?

eclipse osgi eclipse-plugin equinox

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

跟踪对象和引用

如果我们注释掉下面强调的行,我们在控制台中得到777.否则我们得到一些垃圾(-534532345).我的环境是Microsoft Visual Studio 2012 Pro.

class C
{
public:
    C () { x = 777; }
    void ou() {cout << x;}
protected:
    int x;
};

class A
{
public:
    A(C & rrc) : rc(rrc) {};
    void koo () {rc.ou();}
protected:
    C & rc;
};

int _tmain(int argc, _TCHAR* argv[])
{
    C c;
    C * pc = new C;
    A a(*pc);
    delete pc; // <<<< this line
    a.koo();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我弄清楚为什么我会看到这种行为?

c++

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

标签 统计

c++ ×2

c ×1

eclipse ×1

eclipse-plugin ×1

equinox ×1

math ×1

osgi ×1