1.简述
学习C++11以后的一些没见过的语法/用法等,因为很难记住有时候有可能会有用,所以就在这里写一些相关的知识补漏,可能会很杂
2.内容
1.nodiscard
1.用法
[[nodiscard]] Typename Function(Typename Args);
C++17中引入的新特性,标记一个函数,用来提醒开发者不能忽略函数的返回值,如果调用方忽略了函数的返回值,编译器就会发出警告。
2.std::bind()
std::bind(func, args1, args2, args3......);
C++11中引入的方法,用来将一个函数和参数列表绑定为一个对象,使其可以像对象一样被调用,以便于异步执行任务
//使用范例,绑定一个函数模板,参数数量未知
template<typename Func, typename... Args>
bool ThreadPool::addTask(Func &func, Args &&... args) {{// 添加任务mTasks.emplace(std::bind(std::forward<Func>(func), std::forward<Args>(args)...));}mCondition.notify_one(); // 通知一个空闲线程return true;
}