【发布时间】:2014-08-19 17:10:11
【问题描述】:
给定一个模板类myclass,是否有一种棘手的方法可以让用户这样做:
myclass<void> x;
myclass<double> y;
myclass<42> z; // I do not expect the classic hack
// myclass<std::integral_constant<int, 42>>
因为在某些情况下,它是有意义的。我的目标是从用户的角度允许这一点,不管(可能)可怕的元编程黑客是否允许它。
注意:如果可能的话,我想要一个没有boost(仅标准库)的解决方案,以正确理解该方法的所有细节。
【问题讨论】:
-
您可以这样做with function templates,但我怀疑使用类模板是否可行。
-
从 C++ 的角度来看,这没有任何意义。模板参数要么是类型,要么是值,而不是两者。您将如何在
myclass中准确使用此模板参数?
标签: c++ templates c++11 metaprogramming c++14