#include <iostream>
using namespace std;
struct MyType { MyType() {  cout << __PRETTY_FUNCTION__ << endl; }};
MyType& MyType() { cout << __PRETTY_FUNCTION__ << endl; }
using MyType2 = struct MyType;
int main() {
  // MyType t; <- error: expected ‘;’ before ‘t’
  MyType();
  struct MyType t;
  struct MyType t1 = MyType();
  struct MyType t2 = (struct MyType)::MyType();
  struct MyType t3 = MyType2();
  new(&t2) struct MyType();
  return 0;
}