나는이 같은 템플릿 기능이 상상 :C++ - typedef "inside"템플릿 인수?
template<typename Iterator>
void myfunc(Iterator a, typename Iterator::value_type b)
{ ... }
반복자에 대한 형식 정의 :: 치형 내가 함수 서명에 사용할 수있는 같은 일을 구현하여 선언하는 방법이 있나요? 지금까지 내가 기본 템플릿 인수를 사용하고 기본을 확인하려면 개념 향상에 의지 한
template<
typename Iterator,
typedef Iterator::value_type type>
void myfunc(Iterator a, type b)
{ ... }
항상 사용됩니다 :
예를 들어, 나는 이런 식으로 뭔가를 할 수 있기를 원합니다template<
typename Iterator,
typename type = typename Iterator::value_type >
void myfunc(Iterator a, type b)
{
BOOST_STATIC_ASSERT((
boost::is_same<
typename Iterator::value_type,
type
>::value
));
...
}
...하지만 이런 유형의 언어에 대한 지원이 있다면 좋을 것입니다.
기본 인수 기능에 대한 표준 아니기 때문에 아마, 함수 대신 클래스를 이용해야
편집.
template<
typename T,
typename V = typename T::value_type>
class A : public B<T, V>
{
BOOST_STATIC_ASSERT((boost::is_same<typename T::value_Type, V>::type));
};
참고 : 함수 템플릿의 기본 템플릿 인수는 확장입니다. 그들은 C++ 03에 있지 않습니다. –
다른 곳에서도 typename을 생략했습니다. 네가 괜찮 으면 좋겠다. –