43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
|
#ifndef _BOOST_DATE_TIME_FIND_MATCH_HPP___
|
||
|
#define _BOOST_DATE_TIME_FIND_MATCH_HPP___
|
||
|
|
||
|
/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
|
||
|
* Use, modification and distribution is subject to the
|
||
|
* Boost Software License, Version 1.0. (See accompanying
|
||
|
* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||
|
* Author: Jeff Garland, Bart Garst
|
||
|
* $Date$
|
||
|
*/
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
namespace boost {
|
||
|
namespace date_time {
|
||
|
|
||
|
|
||
|
//! Find index of a string in either of 2 arrays
|
||
|
/*! find_match searches both arrays for a match to 's'. Both arrays
|
||
|
* must contain 'size' elements. The index of the match is returned.
|
||
|
* If no match is found, 'size' is returned.
|
||
|
* Ex. "Jan" returns 0, "Dec" returns 11, "Tue" returns 2.
|
||
|
* 'size' can be sent in with: (greg_month::max)() (which 12),
|
||
|
* (greg_weekday::max)() + 1 (which is 7) or date_time::NumSpecialValues */
|
||
|
template<class charT>
|
||
|
short find_match(const charT* const* short_names,
|
||
|
const charT* const* long_names,
|
||
|
short size,
|
||
|
const std::basic_string<charT>& s) {
|
||
|
for(short i = 0; i < size; ++i){
|
||
|
if(short_names[i] == s || long_names[i] == s){
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
return size; // not-found, return a value out of range
|
||
|
}
|
||
|
|
||
|
|
||
|
} } //namespace date_time
|
||
|
|
||
|
|
||
|
#endif
|