OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.oliva/] [partord1.C] - Rev 12

Compare with Previous | Blame | View Log

// { dg-do assemble  }

// Copyright (C) 1999 Free Software Foundation

// by Alexandre Oliva <oliva@dcc.unicamp.br>

template <typename T> void foo(T);
template <typename T> void foo(T*);

template <typename T> class bar {
 private:
  int i; // { dg-error "" } this variable
  friend void foo<T>(T);
};

template <typename T> void foo(T) {
  bar<T>().i = 0; // ok, I'm a friend
}
template <typename T> void foo(T*) {
  bar<T*>().i = 1; // { dg-error "" } not a friend
}

int main() {
  int j = 0;
  foo(j); // calls foo<int>(int), ok
  foo(&j); // calls foo<int>(int*)
  foo<int*>(&j); // calls foo<int*>(int*), ok
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.