C++ 模拟模板化构造函数。太奇怪了?

C++ 模拟模板化构造函数。太奇怪了?,c++,templates,constructor,C++,Templates,Constructor,我想创建一个模板化的构造函数,但是我发现我无法显式地列出模板参数,所以我必须找到另一个解决方案。以下是我所做的: ResourceManager rm = ResourceManager::Create<physfs::ifstream>(); ResourceManager rm=ResourceManager::Create(); 你有没有其他的想法,我可以如何在施工时实现这一点?或者这是一个足够好的解决方案(不太奇怪) 注意:我正在使用move构造函数(这是唯一的公共构造函

我想创建一个模板化的构造函数,但是我发现我无法显式地列出模板参数,所以我必须找到另一个解决方案。以下是我所做的:

ResourceManager rm = ResourceManager::Create<physfs::ifstream>();
ResourceManager rm=ResourceManager::Create();
你有没有其他的想法,我可以如何在施工时实现这一点?或者这是一个足够好的解决方案(不太奇怪)


注意:我正在使用move构造函数(这是唯一的公共构造函数)来避免创建不必要的类副本。

我认为您的代码应该这样做。为了改进设计,请考虑在内部声明资源类型(RealMeCurnAgER),并使用它来根据需要对构造函数进行限定。

答案也应该回答您的问题。(无法删除评论,因为SO的移动视图不允许我…@Xeo是的,我知道该限制。我想知道有什么解决办法。我以前见过。据我所知,绕过它的唯一方法是将模板类型的实例传递给构造函数,这样编译器就会自动推断出该类型。或者使用std::constant\u integer作为模板参数。@Mooing我以前从未见过
std::constant\u integer
。它是从哪来的?(谷歌搜索没有发现任何有用的东西。)它实际上是积分常数。我不确定它被正式存储在哪里,但是
type\u traits
对我来说很有用。这是一个TR1加法。