我希望用一個Spring類模板參數五:爲什麼編譯會導致缺少模板參數錯誤?
#include "Spring.hpp"
template <typename K, typename L>
struct spring_value {
K spring_constant;
L spring_length;
};
typedef Spring<std::vector<spring_value<double, double>>> Spring;
typedef Spring::value value; // why struct Force does not see this?
struct Force {
value v = {1.0, 2.0}; // error
spring_value<double,double> v = {1.0, 2.0}; // ok, but ...
double s = v.spring_value; // also error
}
Spring類:
template <typename V>
class Spring {
public:
typedef V value;
}
然而,該計劃產生missing template arguments before 'v'
錯誤。爲什麼struct Force
在Spring類中看不到spring value
或value
?
你能製作一個小的,*完整的*程序產生這個錯誤嗎? –
第二個錯誤是因爲您無法將結構賦值給double。 – maditya
其實這是錯誤的 - 第二個錯誤是因爲v已經是一個spring_value,並且您試圖獲得一個也稱爲spring值的v成員。至少從你發佈的代碼。這是一個錯字嗎? – maditya