问题标签 [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.
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
?