为了简化我的问题,我将std::unique_lock
用作解释的工具。std::unique_lock 有一个模板参数,即互斥锁。但是,它的构造函数也是一个模板函数unique_lock(TMutex &, const chrono::duration<_Rep, _Period>&)
。
当一个人使用它时,可以写:
auto lock = std::unique_lock(my_mutex, 5s);
所以,问题是:如何为此写出演绎指南(不改变行为),怎么做?
到目前为止我最好的尝试:
template<typename _Mutex>
template<typename _Rep, typename _Period>
unique_lock(_Mutex &, const chrono::duration<_Rep, _Period>&) -> unique_lock<_Mutex>;
不幸的是,clang 不接受这一点:
错误:模板特化或离线模板定义中的多余模板参数列表