Форум — Development [C++] Значение по умолчанию для параметра, переданного по ссылке c++ 0 0 Подскажите, возможно такое, или нет? Как пример:void Function(std::string& instr=???) { ... return; } Ссылка
void Function(const std::string& instr="wer") { //Небольшой ахтунг std::string& str= const_cast<std::string&>(instr); return; } В грядущем стандарте есть неконстантные ссылки на временные объекты: &&Можно заюзать функциональный объект: class Func { public: void operator ()(std::string& instr= str) { } private: static std::string str; }; Booster ★★ (16.02.10 12:01:58 MSK) Показать ответы Ссылка
Ответ на: комментарий от lester 16.02.10 11:42:52 MSK > да А в стандарте я этого не нашёл. Подскажи, что и как. one_more_hokum ★★★ (16.02.10 12:22:14 MSK) автор топика Показать ответ Ссылка
Ответ на: комментарий от one_more_hokum 16.02.10 12:22:14 MSK Что ещё подсказать? В текущем стандарте неконстантная ссылка не может инициализироваться временным объектом. Либо ссылаться на не временный объект либо кастить. Booster ★★ (16.02.10 12:31:20 MSK) Показать ответ Ссылка
Ответ на: комментарий от Booster 16.02.10 12:01:58 MSK > Можно заюзать функциональный объект Ага, спасибо, сработало. Но это феерическое извращение, конечно, хоть и выглядит! :-D one_more_hokum ★★★ (16.02.10 12:38:03 MSK) автор топика Ссылка
Ответ на: комментарий от Booster 16.02.10 12:01:58 MSK А не проще использовать перегрузку функций? void function(std::string& ref) { // ... } void function() { std::string tmp("..."); function(tmp); } nozh ★ (16.02.10 13:44:37 MSK) Ссылка
Ответ на: комментарий от Booster 16.02.10 12:31:20 MSK В текущем стандарте неконстантная ссылка не может инициализироваться временным объектом. Либо ссылаться на не временный объект либо кастить. int& a = a; int& b = b; a = b; lester ★★★★ (16.02.10 13:56:45 MSK) Показать ответ Ссылка
Ответ на: комментарий от lester 16.02.10 13:56:45 MSK Что это? Booster ★★ (16.02.10 14:20:13 MSK) Показать ответ Ссылка
Ответ на: комментарий от Booster 16.02.10 14:20:13 MSK инициализация без статичного объекта и кастинга, а что? lester ★★★★ (17.02.10 00:29:31 MSK) Показать ответ Ссылка
Ответ на: комментарий от lester 17.02.10 00:29:31 MSK >инициализация без статичного объекта и кастинга, а что? Кто-нибудь понял? Booster ★★ (17.02.10 00:33:42 MSK) Показать ответ Ссылка
Ответ на: комментарий от Booster 17.02.10 00:33:42 MSK просто указал, что кроме «ссылаться на не временный объект либо кастить», есть очевидный третий вариант - инициализировать ссылку ссылкой lester ★★★★ (17.02.10 00:47:52 MSK) Ссылка