int main() { foo_says(get_foo("M")); //Foo t = Foo("M"); return 0; }
int main (void) { foo_p p; p = get_foo (); if ((*p) () != -1) abort (); p = get_foo_protected (); if ((*p) () != 0) abort (); return 0; }
void test() { std::reference_wrapper<Foo> ref = get_foo(); ref(0); // incomplete at the point of call }
void test() { Foo const& foo = get_foo(); std::reference_wrapper<Foo const> ref = std::cref(foo); assert(&ref.get() == &foo); }
int main() { print(get_foo()); return 0; }