皆さんレスありがとうございます.

 すいません.質問用に単純化したので,実際には get_int() は _strtoui64() で ulonglong を返します.
func_int() は自作の,set_datas() という値をclassのメンバに設定する関数で,ポインタ引数を複数持ち,
NULLが設定されていない引数をメンバに設定します.

//member func
void set_data(const POINT* ppoint, const FILETIME* ptime, const ULONGLONG* pID)
{
  if( ppoint ) m_point = *ppoint;
  if( ptime  ) m_time = *ptime;
  if( pID   ) m_point = *pID;
}

 例えば POINT get_point() や FILETIME get_time() のような構造体を返す場合は,一見すると問題なくできたのに,
ulonglong を返す場合にエラーとなってしまったので質問させて頂きました.

set_data( &get_point(), &get_time(), &_strtoui64("1",NULL, 10 ) );

 この場合,get_point(), get_time() の返す一時オブジェクトは, set_data() が終了するまで生きていると考えたのですが,
認識が間違っていたでしょうか?

template<typename T>
inline const T* GetPtr(const T& in)
{
  return ∈
}

set_data( &get_point(), &get_time(), GetPtr( _strtoui64("1",NULL, 10 ) ) );

↑また,先ほど思いついたのですが,この方法は問題がありますか?