我以前有一段代码来提取某些部分
auto& c = m_matrix[name];
....large block of code with using c in the calculation...
现在我必须使用if / else或switch大小写m_matrix选项,例如以下语句:
switch input{
case 1:
auto& c = A[name];
case 2:
auto& c = B[name];
}
....large block of code with using c in the calculation...
A和B具有相同类型的元素。但是,这是错误的,因为它将表明c的定义是重复的。同时,我无法声明auto&c;。切换/案例之前以及以下内容:
auto& c;
switch input {
case 1:
c = A[name];
case 2:
c = B[name];
}
....large block of code with using c in the calculation...
有办法解决这个问题吗?
更新:CinCout-恢复莫妮卡提供的解决方案
switch input {
case 1:{
auto& c = A[name];
....large block of code with using c in the calculation...
}
case 2:{
auto& c = B[name];
....large block of code with using c in the calculation...
}
}
有没有办法避免每种情况下的重复代码?谢谢
最佳答案
只需给每个case
一个自己的范围,有效地给每个c
一个本地范围:
switch input
{
case 1:
{
auto& c = A[name];
…
break;
}
case 2:
{
auto& c = B[name];
…
break;
}
}
关于c++ - 如何以其他方式或转换案例格式编码auto&?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59331879/