Program Language/C & C++

error C2558 : no copy constructor available or copy constructor is declared 'explicit'

야곰야곰+책벌레 2021. 10. 21. 10:46
728x90
반응형

  클래스나 구조체를 vector의 push_back을 이용하여 넣으려고 하니 C2558 에러가 발생한다. 생성자에서 복사가 불가능하거나 복사 생성자에 explicit이 선언되어 있다는 것이다. 여기저기 검색하다 보니 const를 선언하지 않아서 발생한 에러였다.

<수정 전>

typedef struct PSOPACK_T
{
	PSOPACK_T(PSOPACK_T& other)
	{
		func = move(other.func);
	}
}

<수정 후>

typedef struct PSOPACK_T
{
	PSOPACK_T(const PSOPACK_T& other)
	{
		func = move(other.func);
	}
}
728x90
반응형

'Program Language > C & C++' 카테고리의 다른 글

[C++] emplace_back  (0) 2021.10.25
[C++] 윈도우즈에서 텍스트로 함수 호출  (2) 2021.10.22
[C++] std::async  (0) 2021.10.19
[C++] values  (0) 2021.10.08
[C++] std::move  (0) 2021.10.08