예를 들어 string을 어떻게 연산해서 string을 리턴하는 함수가 있다고 할때
std::string a = "asdfasdf";
a = myfunc(a);
이렇게 쓸거 아닙니까
이때
1. 파라메터는 그냥 string 받고 함수 안에서 std::move(a) 한다.
2. 파라메터로 rvalue만 받게 해서 myfunc(std::move(a)); 로 쓰게 한다
멀 선호하십니까
저는 2가 좋은 것 같은데 1번 같은 코드가 더 자주 보이더라구여
예를 들어 string을 어떻게 연산해서 string을 리턴하는 함수가 있다고 할때
std::string a = "asdfasdf";
a = myfunc(a);
이렇게 쓸거 아닙니까
이때
1. 파라메터는 그냥 string 받고 함수 안에서 std::move(a) 한다.
2. 파라메터로 rvalue만 받게 해서 myfunc(std::move(a)); 로 쓰게 한다
멀 선호하십니까
저는 2가 좋은 것 같은데 1번 같은 코드가 더 자주 보이더라구여
걍 포인터로 받아서 그안에서 연산하고 리턴은 에러코드로 함
둘 중에서 선택한다면 난 후자 후자가 명시적이어서 의심을 덜 함
해당 댓글은 삭제되었습니다.
옛날엔 나도 lvaue 레퍼런스로 썼는데 구글 C++ 가이드에서 권하기로 변경이 있다는 것을 확실하게 보여줄 수 있다는 장점 때문에 읽기만 하는건 const 레퍼런스로, 변경 있는 건 포인터로 함
그러네 업데이트 됐네
성능이나 의미나 둘 다 후자가 나은거같긴 한데
1번은 죽어도아님 2번하던지 파라미터가 꼭변경되는거면 const없이 std::string&로 인자받던지 하셈
std::string_view를 파라미터로 하는건 어떰?