std::vector는 다들 알다시피 템플릿 파라미터가 2개고 그 중 두번째는 디폴트값을 가지는 파라미터임
C++17 이전에는 템플릿 템플릿 파라미터 사용하고나서 아규먼트 매칭할 때 디폴트값은 고려 안하고 무조건 파라미터 개수가 맞아야했음
그러나 C++17부터는 이게 완화되어 디폴트값이 있는 파라미터는 아규먼트 매칭시 생략 가능함
따라서 위의 코드는 C++17 기준으로는 제대로 컴파일되어야 함
아치리눅스 최신 패키지 기준 -std=c++17 옵션 넣고 컴파일시
gcc로는 표준대로 컴파일 잘됨
clang으로는 컴파일 에러남
macos 커맨드라인툴에 딸려나오는 clang으로도 마찬가지임
더 검색하다보니 clang측의 의도된 결정이었음 꼭 원하면 플래그 넣으면 가능
https://stackoverflow.com/a/48447541