------- Comment #18 from pcarlini at suse dot de  2006-04-20 10:20 -------
This is a self-contained example:

namespace mine1
{
  struct mini_iter
  {
    mini_iter(int* p)
    : _M_current(p) { }

    int&
    operator*() const
    { return *_M_current; }

    mini_iter&
    operator++()
    {
      ++_M_current;
      return *this;
    }

  private:
    int* _M_current;
  };
}

namespace mine2
{
  template<typename _OutputIterator, typename _Size, typename _Tp>
  _OutputIterator
  fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
  {
    for (; __n > 0; --__n, ++__first)
      *__first = __value;
    return __first;
  }

  void f(int* p) { fill_n(mine1::mini_iter(p), 1, 1); }
}

template<typename T>
  int operator,(int i, T t) { __builtin_trap(); return i; }

int main()
{
  int arr[1];
  mine2::f(arr);
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26974

Reply via email to