나는 템플릿 매개 변수 V와 함께 봄 클래스를 사용하려면 :컴파일 결과 템플릿 인수가 누락되었습니다. 오류가 발생합니까?
#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 value
또는 value
으로 표시되지 않는 이유는 무엇입니까?
이 오류를 생성하는 작고 완벽한 * 프로그램을 제작할 수 있습니까? –
두 번째 오류는 구조체를 double에 할당 할 수 없기 때문입니다. – maditya
사실 그건 틀린 것입니다. 두 번째 오류는 v가 이미 spring_value이고, 스프링 값이라고도 불리는 v의 멤버를 얻으려고하기 때문에 발생합니다. 적어도 게시 한 코드에서. 그건 오타예요? – maditya