26 lines
448 B
C
26 lines
448 B
C
// { dg-do run }
|
|
#include <iterator>
|
|
|
|
using namespace std;
|
|
|
|
template<size_t n, size_t i> struct PartialDotProduct {
|
|
template<class T>
|
|
static T Expand(T* a, T* b) { return T(); }
|
|
};
|
|
|
|
const int N = 10;
|
|
|
|
template<class In1, class In2>
|
|
typename iterator_traits<In1>::value_type
|
|
dot(In1 f1, In2 f2)
|
|
{
|
|
return PartialDotProduct<N, 0>::Expand(f1, f2); // line 14
|
|
}
|
|
|
|
int main()
|
|
{
|
|
double a[N], b[N];
|
|
|
|
double s = dot(&a[0], &b[0]);
|
|
}
|