问题标签 [niebloid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
459 浏览

c++ - 为什么 tag_invoke 模式根本需要 Niebloid std::tag_invoke?

这个问题假定您熟悉P1895R0tag_invoke中介绍的定制点管理技术。

自定义点对象可以根据 P1895R0 定义为:

但是考虑到这种技术的关键是直接处理对象,并将任何和所有 ADL 委托给一个且唯一商定的 identifier tag_invoke,那么似乎可以通过简单地实现相同的效果,

例如,P1895R0 中的类型擦除示例https://godbolt.org/z/3TvO4f可以在完全不使用 Niebloid 的情况下重新实现:https ://godbolt.org/z/dzqE7b 。该代码与原始逐字记录相同,以 Niebloid 的定义为模,并对std::tag_invoke所有自定义点对象使用上述 ADL 形式。

Niebloid 的存在真正满足什么要求tag_invoke

0 投票
1 回答
35 浏览

c++ - std::ranges 算法函数对象自定义点 AKA niebloids - std lib 类型的问题