任何人都知道`cimg :: exception_mode()= 0;`呢?

时间:2010-07-18 14:08:11

标签: c++

  const unsigned int omode = cimg::exception_mode();
  cimg::exception_mode() = 0;

之前从未见过这种语法。

2 个答案:

答案 0 :(得分:7)

异常模式可能正在返回引用,并且它被设置为0.例如:

unsigned int& exception_mode() { return mode; };

所以,第二行相当于:

void set_exception_mode( uint v ) { mode = v; };
顺便说一句,真的很难看!我会尽可能地避免使用这种语法。

答案 1 :(得分:3)

该函数可能会返回对int的引用。

unsigned int exceptionMode; // Declared somewhere
// ...
unsigned int& cimg::exception_mode() { return exceptionMode; }
// ...
cimg::exception_mode() = 0;  // Equivalent to exceptionMode = 0;

这允许返回的任何内容充当 l-value 。在这种情况下,它将引用的int设置为零。