/* $Id$ */ // Copyright (C) 2000, International Business Machines // Corporation and others. All Rights Reserved. // This code is licensed under the terms of the Eclipse Public License (EPL). #ifndef CoinDistance_H #define CoinDistance_H #include //------------------------------------------------------------------- // // Attempt to provide an std::distance function // that will work on multiple platforms // //------------------------------------------------------------------- /** CoinDistance This is the Coin implementation of the std::function that is designed to work on multiple platforms. */ template < class ForwardIterator, class Distance > void coinDistance(ForwardIterator first, ForwardIterator last, Distance &n) { #if defined(__SUNPRO_CC) n = 0; std::distance(first, last, n); #else n = std::distance(first, last); #endif } template < class ForwardIterator > size_t coinDistance(ForwardIterator first, ForwardIterator last) { size_t retVal; #if defined(__SUNPRO_CC) retVal = 0; std::distance(first, last, retVal); #else retVal = std::distance(first, last); #endif return retVal; } #endif /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2 */