我有這個簡單的代碼,我想向這個函式發送兩個引數,一個是“i”,另一個是“n”,當嘗試切換“i”以防等于“n”時我失敗了,因為他說'n'不是一個常量運算式,我讀到這個問題,我想找到一種方法讓'n'是一個常量運算式。這是功能:
float east_coefficient(int i, int n){
switch(i){
case 1:
return 0;
break;
case n:
return 0;
break;
default:
return 1;
}
}
這是主要功能:
int main(){
int i, x;
const int n = 5;
x = east_coefficient(i, n);
cout << x;
}
uj5u.com熱心網友回復:
函式引數不是常量運算式。n并且i未在您的代碼中初始化。你可以做n一個模板引數:
#include <iostream>
template <int n>
float east_coefficient(int i){
switch(i){
case 1:
return 0;
break;
case n:
return 0;
break;
default:
return 1;
}
}
int main(){
constexpr int n = 2;
auto x = east_coefficient<n>(42);
std::cout << x;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/412387.html
標籤:
