

struct Pass {} ;
template<typename PassName>
Pass *callDefaultCtor() { return new PassName(); }

void foo(Pass *(*C)());

#include <bits/c++config.h>
#include <bits/stringfwd.h>
#include <bits/char_traits.h>
#include <memory>       // For allocator.
#include <bits/basic_string.h>

bool foo(std::string &X) {
  return X.empty();
}
