- 372 名前:デフォルトの名無しさん mailto:sage [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 ) ) ); ↑また,先ほど思いついたのですが,この方法は問題がありますか?
|

|