请问大神一个C/C++语法有关问题

请教大神一个C/C++语法问题
#include <iostream>
template <typename T>
void Global_function(T *&p, const T &r_Param );

template <typename T>
void Global_function(T *&p, const T &r_Param ) {
    new(p) T(r_Param);// 这行语法是咋回事,大神指点一下!
    if(NULL == p) {
        std::cout<<"Memory failed"<<std::endl;
    } else {
        /*
        TODO
        */
    }
}
int main(){
    int *pTmp_int_pointer = 0;
    Global_function<int>(pTmp_int_pointer, 3);
    return 0;

------解决方案--------------------
http://en.cppreference.com/w/cpp/language/new