Насколько корректно так делать?
От: Аноним  
Дата: 03.03.13 04:40
Оценка:
CString CrvpDlg::GetFileName( const CString& rn )
{
CString fn;
//...
return fn;
}

void Xl::Save( const std::string& name )
{
//...
}

CString rn;
//...
xl.Save( static_cast<const char*>( GetFileName( rn ) ) );
Re: Насколько корректно так делать?
От: dilmah США  
Дата: 03.03.13 04:57
Оценка: +1
корректно

Temporary objects are destroyed as the last step in evaluating the full-expression

Re[2]: Насколько корректно так делать?
От: Mr.Delphist  
Дата: 04.03.13 12:50
Оценка:
Здравствуйте, dilmah, Вы писали:


D>корректно


D>

Temporary objects are destroyed as the last step in evaluating the full-expression


Дополню отсылкой к документации:
http://msdn.microsoft.com/en-us/library/awkwbzyc.aspx#_core_using_cstring_as_a_c_2d_style_null_2d_terminated_string

С другой стороны, такие перемешивания стрингов всё ж вызывают некий "батхёрт изнутри", ибо в идеале хочется иметь дело с чем-то одним. В крайнем случае — разграничить типы строк по разным компонентам системы...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.