C++:如何在函数返回值未使用时触发编译器错误?

Vik*_*ehr 22 c++ compiler-errors return-value

假设我有一个规范化函数定义为:

Vec3f Vec3f::getNormalized() const {
   return (*this)/this->length();
}
Run Code Online (Sandbox Code Playgroud)

如果在没有存储它的返回值的情况下使用此函数,是否可能以某种方式创建编译时错误?;

v.getNormalized(); // which most definitely is a typo
Run Code Online (Sandbox Code Playgroud)

..代替..

v = v.getNormalized(); 
Run Code Online (Sandbox Code Playgroud)

Ash*_*ppa 19

在GCC中,用于-Wunused-result在忽略函数的返回值时触发警告.如果您想要错误而不是警告,请使用-Werror将所有警告转换为错误.有关更多信息,请参阅GCC警告选项.

似乎没有Visual C++编译器的等效警告.(如果我错了,请使用Visual C++信息编辑此回复.)


Pup*_*ppy 6

无法知道是否采用了返回值.保证传入一个的唯一方法是通过引用传递返回值.

  • 并称之为`normalize` :) (5认同)