Ticket #1993: example.cpp

File example.cpp, 1.3 KB (added by Wijnand Suijlen <wijnandsuijlen@…>, 14 years ago)

Smallest program suffering from bug

Line 
1#include <iostream>
2#include <boost/iterator/transform_iterator.hpp>
3#include <boost/iterator/iterator_adaptor.hpp>
4#include <boost/iterator/permutation_iterator.hpp>
5#include <boost/iterator/zip_iterator.hpp>
6#include <boost/concept_check.hpp>
7#include <boost/tuple/tuple.hpp>
8
9#include <vector>
10
11typedef std::vector<int>
12 Container;
13
14typedef int (*FunctionType)(int) ;
15
16typedef boost::transform_iterator< FunctionType, Container::iterator >
17 Iterator1;
18
19struct Iterator2 : public boost::iterator_adaptor< Iterator2, Container::iterator >
20{};
21
22typedef boost::permutation_iterator< Container::iterator, Container::iterator >
23 Iterator3;
24
25typedef boost::zip_iterator< boost::tuple< Container::iterator, Container :: iterator > >
26 Iterator4;
27
28int main()
29{
30 boost::function_requires< boost::RandomAccessIteratorConcept< Iterator3 > >() ; // Succeeds
31 boost::function_requires< boost::RandomAccessIteratorConcept< Iterator2 > >() ; // Succeeds
32
33 boost::function_requires< boost::InputIteratorConcept< Iterator1 > >(); // Succeeds
34 boost::function_requires< boost::InputIteratorConcept< Iterator4 > >(); // Succeeds
35// boost::function_requires< boost::RandomAccessIteratorConcept< Iterator1 > >() ; // Fails
36// boost::function_requires< boost::RandomAccessIteratorConcept< Iterator4 > >() ; // Fails
37 std::cout << "boe" << std::endl;
38
39 return 0;
40}