#include <iostream>
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
#include<algorithm>
using namespace std;
class Knight {
public:
void Test() {
cout << "Knight::Test()" << endl;
}
};
Knight* FindKnight() {
return nullptr;
}
void Test(int a) {
cout << "Test(int)" << endl;
}
void Test(int* a) {
cout << "Test(int*)" << endl;
}
class NullPtr{
public:
template<typename T>
operator T* () const {
return 0;
}
template<typename C, typename T>
operator T C::* () const {
return 0;
}
private :
void operator&() const;
}_nullptr;
template<typename T>
struct Func{
public:
};
int main()
{
Test(0);
Test(NULL);
Test(nullptr);
auto knight = FindKnight();
if (knight == 0) {
}
if (knight == _nullptr) {
}
nullptr_t whoami = nullptr;
Knight* k2 = _nullptr;
void (Knight:: * memFunc)();
memFunc = &Knight::Test;
if (memFunc == _nullptr) {
}
return 0;
}