mfbt/IteratorTraits.h
author Boris Zbarsky <bzbarsky@mit.edu>
Wed, 24 Jun 2015 00:42:46 -0700
changeset 250045 4267b74ee795e8127ffce4d45d00384cd8170130
parent 227319 56219858c1e152b795d42b7ca8620eb2e1284d44
permissions -rw-r--r--
Bug 1176083. Remove the now-dead code for the XPCOM version of setTimeout/setInterval. r=smaug I claim this code is dead because on the one hand it's no longer called from JS (because Window is always on WebIDL bindings, but on the other hand it can't really be called from C++ because it depends on examining the XPConnect call information. I think removing this completely, including from the IDL, is safe, because nothing directly returns nsIDOMJSWindow, so anyone using its vtable would have to QI to it and we're changing the IID.

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* Iterator traits to expose a value type and a difference type */

#ifndef mozilla_IteratorTraits_h
#define mozilla_IteratorTraits_h

#include <stddef.h>

namespace mozilla {

template<typename Iterator>
struct IteratorTraits
{
  typedef typename Iterator::ValueType ValueType;
  typedef typename Iterator::DifferenceType DifferenceType;
};

template<typename T>
struct IteratorTraits<T*>
{
  typedef T ValueType;
  typedef ptrdiff_t DifferenceType;
};

template<typename T>
struct IteratorTraits<const T*>
{
  typedef const T ValueType;
  typedef ptrdiff_t DifferenceType;
};

} // namespace mozilla

#endif // mozilla_IteratorTraits_h