0
目前编程专业标准库,而且我发现,在特定的情况下,这是必要的我:C++:重载模板别名
namespace std
{
// key, value
template<class K, class V>
using vector_map = other_namespace::vector_map<K, V>;
// key, value, compare
template<class K, class V, class C>
using vector_map = other_namespace::vector_map<K, V, C>;
}
它,然而,无法正常工作。不奇怪。但是,我有什么选择来实现这一目标? 我曾想过使用预处理器,但我想知道你们的想法。
我希望能够选择性别名模板类到另一个名称空间,如果可能的话。
解决方案(在我的情况)是增加而不是有几个usings默认值:
namespace std
{
// key, value, compare
template<class K, class V, class C = default_value>
using vector_map = other_namespace::vector_map<K, V, C>;
}
你想达到什么目的? 'other_namespace :: vector_map'也不是“重载”的,它只有'C'的默认值。那也能为你工作吗? – Cameron 2014-10-08 22:12:34
我想要具有相同的功能,就好像模板类本身与我的using语句位于同一名称空间中一样。在此示例中,vector_map位于other_namespace中,但我想将特定变体移动到std :: namespace:和类型。 –
gonzo
2014-10-08 22:15:01
是的,谢谢!我只是将默认值添加到我的模板别名,并解决它。再次感谢 – gonzo 2014-10-08 22:20:02