some ETI-related fixes

[SVN r17549]
This commit is contained in:
Aleksey Gurtovoy
2003-02-20 12:23:55 +00:00
parent aca920d38b
commit 60d0602eb9
4 changed files with 48 additions and 5 deletions

View File

@@ -19,6 +19,13 @@ struct apply0 : F
};
// workaround for the ETI bug
template<>
struct apply0<int>
{
typedef int type;
};
namespace aux {
template<>
@@ -55,6 +62,13 @@ struct apply1
};
// workaround for ETI bug
template<>
struct apply1< int,int >
{
typedef int type;
};
namespace aux {
template<>
@@ -92,6 +106,13 @@ struct apply2
};
// workaround for ETI bug
template<>
struct apply2< int,int,int >
{
typedef int type;
};
namespace aux {
template<>
@@ -130,6 +151,13 @@ struct apply3
};
// workaround for ETI bug
template<>
struct apply3< int,int,int,int >
{
typedef int type;
};
namespace aux {
template<>
@@ -169,6 +197,13 @@ struct apply4
};
// workaround for ETI bug
template<>
struct apply4< int,int,int,int,int >
{
typedef int type;
};
namespace aux {
template<>
@@ -210,6 +245,13 @@ struct apply5
};
// workaround for ETI bug
template<>
struct apply5< int,int,int,int,int,int >
{
typedef int type;
};
namespace aux {
template<>

View File

@@ -11,7 +11,7 @@ struct resolve_arg_impl
{
template<
typename T, typename U1, typename U2, typename U3
, typename U4 , typename U5
, typename U4, typename U5
>
struct result_
{
@@ -24,7 +24,7 @@ struct resolve_arg_impl<true>
{
template<
typename T, typename U1, typename U2, typename U3
, typename U4 , typename U5
, typename U4, typename U5
>
struct result_
{

View File

@@ -11,7 +11,7 @@ struct resolve_arg_impl
{
template<
typename T, typename U1, typename U2, typename U3
, typename U4 , typename U5
, typename U4, typename U5
>
struct result_
{
@@ -24,7 +24,7 @@ struct resolve_arg_impl<true>
{
template<
typename T, typename U1, typename U2, typename U3
, typename U4 , typename U5
, typename U4, typename U5
>
struct result_
{
@@ -64,7 +64,7 @@ struct replace_unnamed_arg_impl< arg<-1> >
};
};
template< typename T, typename Arg >
template< typename T, typename Arg >
struct replace_unnamed_arg
: replace_unnamed_arg_impl<T>::template result_<Arg>
{

View File

@@ -18,6 +18,7 @@ struct template_arity_impl<true>
template< typename F > struct result_
{
enum { value = F::arity };
};
};