Workarounds for MSVC

[SVN r12246]
This commit is contained in:
Dave Abrahams
2002-01-07 19:24:45 +00:00
parent bc9d8b13d0
commit 8a81d8b16c
2 changed files with 26 additions and 9 deletions

View File

@@ -10,17 +10,26 @@
int main(int, char*[])
{
char letters[] = "hello world!";
const int N = sizeof(letters)/sizeof(char) - 1;
char letters_[] = "hello world!";
const int N = sizeof(letters_)/sizeof(char) - 1;
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
// Assume there won't be proper iterator traits for pointers. This
// is just a wrapper for char* which has the right traits.
typedef boost::iterator_adaptor<char*, boost::default_iterator_policies, char> base_iterator;
#else
typedef char* base_iterator;
#endif
base_iterator letters(letters_);
std::cout << "original sequence of letters:\t"
<< letters << std::endl;
<< letters_ << std::endl;
std::sort(letters, letters + N);
// Use reverse_iterator_generator to print a sequence
// of letters in reverse order.
boost::reverse_iterator_generator<char*>::type
boost::reverse_iterator_generator<base_iterator>::type
reverse_letters_first(letters + N),
reverse_letters_last(letters);