noorycode   10달 전

도대체 어디서 컴파일에러가 생기는지 모르겠네요...


struct Paper
{
int width;
int height;
};

bool comp(Paper x, Paper y)
{
if (y.width == x.width)
return (y.height < x.height);
else
return (y.width < x.width);
}

class를 struct로 바꿔서 stl sort에 comp를 넣어주면 잘되는데...

밑에 소스가 컴파일 에러가 나는 이유는 뭘까요?

namnamseo   10달 전

bool operator <(const Paper &x) 의 뒤에 const를 붙이셔야 합니다.

noorycode   10달 전

뒤에 const를 붙여서 해결했는데 VS에서는 잘되는데 컴파일에러가 나는 이유는 뭘까요..?

namnamseo   10달 전

VS가 사용하는 cl 컴파일러와, 온라인저지 서버가 사용하는 g++ 컴파일러가 서로 다른 표준을 사용하기 때문입니다.
따라서 한 컴파일러에서 작동하는 소스가 다른 컴파일러에서 컴파일 에러가 날 수 있습니다.

noorycode   10달 전

감사합니다 ^.^

댓글을 작성하려면 로그인해야 합니다.