У меня есть хороший класс управления ресурсами.Для конкретности, пусть это будет класс File для управления FILE * (обработка операций открытия и закрытия)
Каков обычный подход, когда существуют случаи, когда мне не нужно управлять ресурсом, а кто-то еще несет ответственность?
В целях иллюстрации у меня сейчас есть что-то вроде этого:
int main(int argc, char** argv)
{
File my_file(argv[1]); //I unconditionaly obtain the resource
//...
return 0; //and unconditionally relinquish with the destructor
}
И я хочу что-то вроде
int main()
{
if(argc <= 1){
//use stdin that is already available
}else{
//obtain a file from argv[1]
}
//...
if(argc <= 1){
//nothing to do
}else{
//close the file we obtained
}
}
(но менее уродливо), более надежный и т. д ...)