Всем привет!
Много лет не писал ничего на С++.
Сейчас столкнулся со сторонней библиотекой на С++, как вы думаете, такой код (подход,API) выглядит нормально?
Код из примера на сайте библиотеки.
// load source & destination
System::SharedPtr dstDoc = System::MakeObject(dir + u"destination.doc");
System::SharedPtr srcDoc = System::MakeObject(dir + u"source.doc");
// set the appended file to start on a new page.
srcDoc->get_FirstSection()->get_PageSetup()->set_SectionStart(Aspose::Words::SectionStart::NewPage);
// append the source file using the original styles found in the source file.
dstDoc->AppendDocument(srcDoc, Aspose::Words::ImportFormatMode::KeepSourceFormatting);
// save result
dstDoc->Save(dir + u"output.doc);
Здравствуйте, Homunculus, Вы писали:
H>Здравствуйте, Nonmanual Worker, Вы писали:
H>Ну если не считать мелочи типа подчеркивания после "get" и "set", то вполне нормально. А что смущает?
Просто хотел узнать стороннее мнение.
Здравствуйте, Nonmanual Worker, Вы писали:
NW>Всем привет! NW>Много лет не писал ничего на С++. NW>Сейчас столкнулся со сторонней библиотекой на С++, как вы думаете, такой код (подход,API) выглядит нормально? NW>Код из примера на сайте библиотеки. NW>
NW>// load source & destination
NW>System::SharedPtr dstDoc = System::MakeObject(dir + u"destination.doc");
NW>System::SharedPtr srcDoc = System::MakeObject(dir + u"source.doc");
NW>// set the appended file to start on a new page.
NW>srcDoc->get_FirstSection()->get_PageSetup()->set_SectionStart(Aspose::Words::SectionStart::NewPage);
NW>// append the source file using the original styles found in the source file.
NW>dstDoc->AppendDocument(srcDoc, Aspose::Words::ImportFormatMode::KeepSourceFormatting);
NW>// save result
NW>dstDoc->Save(dir + u"output.doc);
NW>
В зависимости от решаемой задачи, код C++ может выглядеть сильно по-разному. Если говорить вообще-вообще, то первая мысль, которая пришла мне в голову при взгляде на этот код: программист на C# напишет программу на C# на любом языке программирования.
Здравствуйте, Sm0ke, Вы писали:
R>>На чем основана уверенность, что, например, srcDoc->get_FirstSection() не вернет пустой указатель?
S>А вдруг там сделано так, что first section всегда есть, даже в пустом документе?
А вдруг, не сделано? Или сделано, но с ошибкой. Как учит горький опыт, использовать сторонние библиотеки лучше в презумпции максимального недоверия.
--
Не можешь достичь желаемого — пожелай достигнутого.