#ifndef _TEMPLATE_ARGS_H_ #define _TEMPLATE_ARGS_H_ template struct Bar { Bar & ref() { return *this; } const Bar & const_ref() { return *this; } const Bar & const_ref_const() const { return *this; } T value; }; template struct Foo { int bar_value(const Bar & bar) { return bar.value; } }; #endif