4byte 밑이고 함수 내부에서 값을 변경할 필요가 없으면 call by value
그외 객체의 크기가 크거나 함수내부에서 값의 수정이 있을 경우
인자가 꼭 들어와야 하는 거라면 레퍼런스 타입
인자가 옵션이라면 포인터
내부에서 수정해서는 안되는 경우는 꼭 const를 붙이고.
음 요즘 라이브러리를 만들다 보니 별거 아니지만 크게 깨달은것중 하나.
예전엔 별로 신경 안쓰고 아무렇게나 혼용해서 썼는데 요즘은 사용자가 어떤부분은 꼭 지켜줘야 하는 부분(위에 언급한것 처럼 꼭 넣어줘야 하는 인자라던지)을 코드레벨에서 강제해 줄수 있는거라 디자인 레벨에서 확고한 규칙을 설정하고 지켜줘야 겠다고 느끼고 있다.