篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp C ++模板强制使用函数返回值。相关的知识,希望对你有一定的参考价值。
// If it is important that a return value not be ignored by the caller of a function,
// the template dont_ignore may be used as follows:
// BEFORE:
// int add( int x, int y )
// {
// return x + y;
// }
// AFTER:
// dont_ignore<int> add( int x, int y )
// {
// return x + y;
// }
//
// When the caller of the function does not use the return value,
// an exception is thrown. Definition of dont_ignore:
template<class T>
struct dont_ignore
{
const T v;
bool used;
dont_ignore( const T& v )
: v( v ), used( false )
{}
~dont_ignore()
{
if ( !used )
throw std::runtime_error( "return value not used" );
}
operator T()
{
used = true;
return v;
}
};
以上是关于c_cpp C ++模板强制使用函数返回值。的主要内容,如果未能解决你的问题,请参考以下文章