필자는 입력 포트를 만들도록 템플릿을 작성하려고합니다. 이는 단일 입출력 포트 또는 입력 핀 목록에서 수행 할 수 있습니다. 그 이름이 같은 템플릿을 선호합니다. 나는 입출력 포트와 입력 핀 모두에 대한 개념을 가지고있다. 쓸 수 있습니다C++ 템플릿은 하나의 유형 또는 다른 단일 유형의 목록과 일치 할 수 있습니까?
template< typename... arguments >
struct port_in ....
template< pin_in T >
struct port_in<> ....
그러나 이제 목록 버전은 모든 유형을 허용합니다. 구현에서이를 확인할 수 있지만 적합하지 않은 유형을 전달할 때 사용자가받는 오류 메시지가 저하됩니다. 어떻게 든 목록을 한 유형으로 제한 할 수 있지만 다른 유형의 단일 템플릿 매개 변수는 허용 할 수 있습니까? 나는 그것이 비의 정수를 사용할 수있는 경우이 작업을 수행하는 깨끗한 방법이 확실하지 않다
template<uint16_t ... Ports>
struct port_in ....
을하면 실제 원하는 : 목록의 버전 번호를 취할 것으로 예상되는 경우
이것은 좋아 보인다. 나는 내일 그것을 시험 할 것이다. 제가 빠뜨린 것은 개념을 받아들이는 능력이었습니다. –
'concept'은 비표준입니다. – SergeyA
예,하지만 개념을 사용하고 있습니다. 질문에 'C++ 개념'이라는 태그가 붙어 있으며 질문 문안에 개념을 언급합니다. –