viewimage.php?id=2ab4c42ef0d0&no=24b0d769e1d32ca73ced85fa11d02831a10d3d354cfd31ab73f93ab078c19d8eb0fde0109461a8ce93107fd9b987250f49c6d76d90ed6fe1acf8b1baf636633ee9bc


std::vector는 다들 알다시피 템플릿 파라미터가 2개고 그 중 두번째는 디폴트값을 가지는 파라미터임




viewimage.php?id=2ab4c42ef0d0&no=24b0d769e1d32ca73ced85fa11d02831a10d3d354cfd31ab73f93ab078c19d8eb0fde0109461a8ce93107fd9b987250f49c6d76d90ed62e0aefab2b7f167633e8a26


C++17 이전에는 템플릿 템플릿 파라미터 사용하고나서 아규먼트 매칭할 때 디폴트값은 고려 안하고 무조건 파라미터 개수가 맞아야했음

그러나 C++17부터는 이게 완화되어 디폴트값이 있는 파라미터는 아규먼트 매칭시 생략 가능함

따라서 위의 코드는 C++17 기준으로는 제대로 컴파일되어야 함




아치리눅스 최신 패키지 기준 -std=c++17 옵션 넣고 컴파일시

gcc로는 표준대로 컴파일 잘됨

clang으로는 컴파일 에러남

macos 커맨드라인툴에 딸려나오는 clang으로도 마찬가지임