Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
2年前关闭。
我编写了一个C ++宏来包装两个通用函数的执行:
用法示例:
我想用更优雅的代码替换此代码。您认为模板可以帮助我吗?还有其他想法吗?
谢谢。
在呼叫站点,您可以使用lambda表达式生成可调用对象:
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
2年前关闭。
我编写了一个C ++宏来包装两个通用函数的执行:
#define DO_ACTIONS( action1, action2, handle ) \
ResetEvent( handle ); \
action1 \
action2 \
// other common stuff...
用法示例:
DO_ACTIONS( function1( 1, 2, 3 );,
function2();,
m_handleEvent );
DO_ACTIONS( function1( "some text" );,
function2( -3 );,
m_handleEvent );
我想用更优雅的代码替换此代码。您认为模板可以帮助我吗?还有其他想法吗?
谢谢。
最佳答案
普通模板应该足以满足该设施的需要,因为关于您的问题没有什么变化:
template <typename F1, typename F2>
void do_actions(F1 f1, F2 f2, handle_type handle)
{
ResetEvent(handle);
f1();
f2();
}
在呼叫站点,您可以使用lambda表达式生成可调用对象:
do_actions([](){ function1(1, 2,3 ); },
[](){ function2(); },
m_handleEvent);
10-06 12:45