【发布时间】:2014-02-18 09:27:02
【问题描述】:
我想实现我自己的 std::make_unique 函数,该函数是 std 命名空间的一部分。我知道这个辅助函数已添加到 C++14,但我在 C++11 中没有。所以,我想用一些 C++11 模板魔法(找不到任何带有宏的选项)来检查它是否存在于 std 命名空间中,以及它是否没有自己定义。那可能吗?我什至不知道从哪里开始。
【问题讨论】:
-
为什么你认为它应该在
std? -
您可能需要考虑始终调用您自己的函数,并将该函数调度到 make_uniq 或您自己的函数,具体取决于 std::make_uniq 是否存在(通过 sfinae 检测)
-
@MSalters 因为我希望能够使用
std::make_unique,而不是我自己的东西。 @PlasmaHH 在您发表评论后,我正在考虑改变我对这个特定代码设计的“信念”。
标签: c++ templates c++11 macros