1// { dg-do assemble  }
2//
3// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
4// Contributed by Nathan Sidwell 29 Apr 2001 <nathan@codesourcery.com>
5
6// Bug 2258. We failed to implement using directives inside template
7// functions. This makes us regress now that ::std is real.
8
9namespace thing
10{
11  template <typename T> T end2 (T);
12}
13namespace whatever
14{
15}
16
17template <typename T> void fn (T, T (*)(T));
18
19namespace whatever
20{
21  template <typename T> T end3 (T);
22}
23
24template <class T> void mycout(const T& data)
25{
26  using namespace thing;
27  using namespace whatever;
28
29  fn (data, end2);
30  fn (data, end3);
31}
32
33int main()
34{
35  double data = 5.0;
36  mycout(data);
37}
38