【初心者歓迎】C/C++室 Ver.77【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0372デフォルトの名無しさん
2012/01/08(日) 13:35:58.42すいません.質問用に単純化したので,実際には 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 ) ) );
↑また,先ほど思いついたのですが,この方法は問題がありますか?
■ このスレッドは過去ログ倉庫に格納されています