다음 코드는 Clang (4.0) 및 GCC (6.3)로 컴파일되지만 MSVC (Visual Studio 2015 Update 1, Visual Studio 2017)에서는 실패합니다.MSVC가 인스턴스화없이 템플릿 사용을 거부해야합니까?
error C2219: syntax error: type qualifier must be after '*'
그러나, 다음 코드는 MSVC로 잘 컴파일 :
using ConstRestrictInt = ConstRestrict<int*>;
이 컴파일러의 버그가
template <typename T>
using ConstRestrict = T const __restrict;
MSVC 오류를 방출? 표준이 이것에 대해 무엇이라고 말합니까?
스 니펫에 오타가 아닌 [mcve]를 제공하십시오. 정확히 ** 컴파일되고 실행되지 않는 것은 무엇입니까? 양쪽 진술은 함께? 떨어져서? ';'을 의도적으로 삭제 했습니까? – Yakk
아니요. 최소한의 완전하고 검증 가능한 예입니다. https://godbolt.org/g/pqrJFr –