【发布时间】:2016-04-12 21:01:26
【问题描述】:
许多 Boost 的 SFINAE 助手已经出现在 C++11 的 std 库中,但 has_dereference 似乎没有。除了这个特性,我已经设法从我的包中消除了一个 Boost 依赖,我想完全摆脱它,那么如何最好地使用 C++11 标准特性来获得相同的效果?
【问题讨论】:
-
不能只看实现吗?
-
我不知道确切的许可证,但您可能只需将 Boost 实现复制粘贴到您的代码中。应该只是标题,不能太长。
-
@Nicol 我猜你没有? ;-) 它是通过隐蔽(且看起来很复杂)#defines 来完成的,例如 BOOST_TT_FORBIDDEN_IF,由内部 has_prefix_operator.hpp 标头使用,然后再次未定义。所以逆向工程并不容易,而且绝对不仅仅是将代码从 Boost 复制到基于标准的代码的问题。
-
嗯,不,我真的没有,显然我猜错了。 :) this 有帮助吗?
-
@BaummitAugen 啊,这看起来很有用。我明天试试,谢谢!
标签: c++ c++11 boost sfinae typetraits