struct foo; class base { public: const foo &nfo; base(const foo &x) : nfo(x) { }; private: base(); }; class non_template: public base { }; extern const struct foo* foo_ptr; class dyna_int_t; int main2(void) { base test1(*foo_ptr); non_template test2(*foo_ptr); return 0; }