- 主题:c++太复杂了,我承认这几行代码我一辈子写不出来
template <class F, class... Args>
auto ThreadPool::Enqueue(F &&f, Args &&...args) -> std::future<typename std::result_of<F(Args...)>::type> {
using return_type = typename std::result_of<F(Args...)>::type;
auto task =
std::make_shared<std::packaged_task<return_type()>>(std::bind(std::forward<F>(f), std::forward<Args>(args)...));
模板+变长参数+异步+右值引用+转发+智能推导。。。
--
FROM 183.242.243.*
我当然能看懂,但是如果我没看,一定写不出。
【 在 poocp 的大作中提到: 】
: 你看不懂就问AI,比如KIMI。
: [upload=1][/upload]
:
--
FROM 222.129.48.*
你也很厉害,不过你没他的复杂。你的只不过变长参数,他的还有异步,转发等。
【 在 poocp 的大作中提到: 】
: 这是我写的一个编译时的函数,变长参数比上面那个还稍微复杂点。
: template<std::size_t N>
: constexpr auto make_translation_map(const wchar_t* const (&arr)[N]) {
: ...................
--
FROM 222.129.48.*
问一下,你的这个lambda表达式和index_sequense是必需的吗?不能用普通的for循环实现吗?感觉有点炫技的成分。
【 在 poocp 的大作中提到: 】
: 这是我写的一个编译时的函数,变长参数比上面那个还稍微复杂点。
: template<std::size_t N>
: constexpr auto make_translation_map(const wchar_t* const (&arr)[N]) {
: ...................
--
FROM 183.242.243.*
为啥?我觉着写的很好呀,新特性开发出来,不就是让人用的吗?
【 在 smartbear 的大作中提到: 】
: 公司里面碰到这种写代码的,CTO第一件事情就是让他改,或者滚
:
--
FROM 183.242.243.*
我也觉着写得很好,让我从心底佩服。
【 在 z16166 的大作中提到: 】
: 很实用的
: 编译期的变参函数,也很常见。
: 除了线程池/回调,给脚本引擎导出native函数接口也能用到。
: ...................
--
FROM 183.242.243.*
部分认同,我不鼓励,但是别人用我也不反对
【 在 adamhj 的大作中提到: 】
: 因为团队工作是一群人干活,你能看懂不代表别人能看懂,你用一些复杂的语法,等于是要求
:
--
FROM 183.242.243.*
是因为很多“人”这么些,所以AI才被训练成这样。
【 在 newzzdx 的大作中提到: 】
: 现在AI经常写类似的代码,比人写的要好的多。
:
--
FROM 183.242.243.*
我的意思就是因为有足够多的这样的语料,AI才知道这么写。
【 在 z16166 的大作中提到: 】
: 跟这样写的人多少没关系。ai学过这种语料,它咋写跟提示词有关。你要是要求它用老式的callback函数指针来搞线程池的任务队列,它一样写
: --
: 发自xsmth (iOS版)
--
FROM 183.242.243.*
熟悉现代c++其实挺难的。。
【 在 z16166 的大作中提到: 】
: 技术领域的“朴素”可能也是分阶段的
: 对于Pure C和legacy c++这个阶段,和对于modern c++这个阶段,“朴素”可以有不同的解释。对于熟悉modern c++的人来说,楼主的代码是很容易看懂的
: 用别的语言(比如Rust)来实现可变参数的线程池的任务队列,也有那个语言特有的抽象方式,要掌握同样有学习成本
: ...................
--
FROM 222.129.50.*