#include <iostream>

template<typename T>
struct MemoryRegion
{
};

int main()
{
    MemoryRegion<int> FinalRegion(MemoryRegion<int>());
    FinalRegion(NULL);
}

MemoryRegion<int> FinalRegion(MemoryRegion<int>(*)())
{
        std::cout << "Function called\n";
        return MemoryRegion<int>();
}
