1// (C) Copyright Eric Niebler 2005.
2// Use, modification and distribution are subject to the
3// Boost Software License, Version 1.0. (See accompanying file
4// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6/*
7 Revision history:
8 25 August 2005 : Initial version.
9*/
10
11#include <vector>
12#include <boost/core/lightweight_test.hpp>
13#include <boost/foreach.hpp>
14
15// counter
16int counter = 0;
17
18std::vector<int> my_vector(4,4);
19
20std::vector<int> const &get_vector()
21{
22 ++counter;
23 return my_vector;
24}
25
26
27///////////////////////////////////////////////////////////////////////////////
28// test_main
29//
30int main()
31{
32 BOOST_FOREACH(int i, get_vector())
33 {
34 ((void)i); // no-op
35 }
36
37 BOOST_TEST(1 == counter);
38
39 return boost::report_errors();
40}
41

source code of boost/libs/foreach/test/call_once.cpp