#include <string>
#include <vector>
using namespace std;
struct Student
{
const string name;
int grade;
Student(const string &name) : name(name) { }
};
어떻게하고, 학생들의 벡터를 보관하지 있다고 가정 해 봅시다?
int main()
{
vector<Student> v;
// error C2582: 'operator =' function is unavailable in 'Student'
v.push_back(Student("john"));
}
도 할 수있는 방법이 있습니까, 아니면 대신 그들 각각에 힙에있는 모든 학생들을 할당하고 포인터를 저장해야?
이 내용은 VC 2010에서 컴파일 및 링크 된 것으로 보입니다. 환경에 대한 자세한 정보를 제공 할 수 있습니까? 이 컴파일 오류를 재생산하는 완벽한 테스트 케이스입니까? – DRH
@DRH : 저는 VC 2008에 있습니다. 죄송합니다. 그리고 네, 전체 테스트 케이스입니다. – Mehrdad
다른 오퍼레이션에서는 할당 연산자가 필요하지만'push_back'이 그 요구 사항을 가질 수있는 가능한 이유는 생각할 수 없다. 다시 한번 구현이 'Assignable' 요구 사항을 확인하는 것일 수도있다. –