Я думал о том, как использовать локальную переменную, которая была объявлена как ссылочный тип. Я нашел это бесполезным, потому что везде, где я использую переменную ref, я вполне могу использовать только переменную, ссылку на которую я назначил Пока я не понял, что переменная ref может ссылаться на переменную, которую трудно вычислить.
Поэтому я "изобрел" этот код:
system::path& pathSeparator;
if( system::is_mswindows() ) {
pathSeparator = long::namespace::access::path::mswindows::pathSeparator;
} else {
pathSeparator = long::namespace::access::path::posix::pathSeparator;
}
/* code which uses pathSeparator a lot */
, но я получаю ошибку, потому что pathSeparator
не присваивается значение при его инициализации в первой строке примера кода. Если я делаю то же самое с pathSeparator
, объявленным в качестве указателя, тогда он работает нормально, но теперь я вынужден разыменовывать переменную каждый раз, когда использую ее.
Итак, возможно ли использовать ссылочную переменную, ссылка на которую основана на условии, для кода, который много использует переменную (чтобы не записывать if-s каждый раз, когда коду требуется его значение)