bool foo(int& idx) { if (idx < m_count) { idx++; return(m_bool[idx - 1]); } return(false); } class Foo { public: Foo(); Foo(const Foo& f); }; class NS::Foo { public: Foo(Bar& b); }; template class ListManager { protected: T head; public: ListManager() { head.next = head.prev = &head; } ListManager(const ListManager& ref) { head.next = head.prev = &head; } } const Foo& Foo::operator ==(Foo& me) { ::sockaddr *ptr = (::sockaddr *)&host; return(me); } MyType& MyClass::myMethode() { const MyType& t = getSomewhere(); }