【发布时间】:2015-08-05 06:56:36
【问题描述】:
我想使用 C++11 自动小说明符来推断我的返回类型,但我尝试使用它的示例与它的典型用法有点不同。
我有一个基类和派生某些成员函数的子类。
enum class state {composite1, composite2, composite3};
class material
{
public:
}
class sub_material1 : material
{
public:
template<typename T>
T* transform(state to_state)
{
T* material;
switch(to_state){
case(state::composite1) :
//do transform computations
// set material to return
material = some_transformed_material;
break;
case(state::composite2):
// do transform computation
// set material to return
material = some_transformed_material;
break;
.
.
.
.
}
return material;
}
}
所以如果我有类似的东西
sub_material1 mat1;
sub_material2 mat2;
mat2 = mat1.transform(state::composite2);
在这种情况下,我如何使用 auto 和 decltype ,因为我有条件测试可能会很长...... decltype 似乎有点过头了?
如何推断类型?
谢谢
【问题讨论】:
-
你能创建完整的例子吗?什么是 some_transformed_material?