Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 270 — #308<br />
✐<br />
Capítulo 9. Funciones inline<br />
}<br />
const std::string& msg = "Requirem<strong>en</strong>t failed"){<br />
using namespace std;<br />
if (!requirem<strong>en</strong>t) {<br />
fputs(msg.c_str(), stderr);<br />
fputs("\n", stderr);<br />
exit(1);<br />
}<br />
inline void requireArgs(int argc, int args,<br />
const std::string& msg =<br />
"Must use %d argum<strong>en</strong>ts") {<br />
using namespace std;<br />
if (argc != args + 1) {<br />
fprintf(stderr, msg.c_str(), args);<br />
fputs("\n", stderr);<br />
exit(1);<br />
}<br />
}<br />
inline void requireMinArgs(int argc, int minArgs,<br />
const std::string& msg =<br />
"Must use at least %d argum<strong>en</strong>ts") {<br />
using namespace std;<br />
if(argc < minArgs + 1) {<br />
fprintf(stderr, msg.c_str(), minArgs);<br />
fputs("\n", stderr);<br />
exit(1);<br />
}<br />
}<br />
inline void assure(std::ifstream& in,<br />
const std::string& fil<strong>en</strong>ame = "") {<br />
using namespace std;<br />
if(!in) {<br />
fprintf(stderr, "Could not op<strong>en</strong> file %s\n",<br />
fil<strong>en</strong>ame.c_str());<br />
exit(1);<br />
}<br />
}<br />
inline void assure(std::ofstream& out,<br />
const std::string& fil<strong>en</strong>ame = "") {<br />
using namespace std;<br />
if(!out) {<br />
fprintf(stderr, "Could not op<strong>en</strong> file %s\n",<br />
fil<strong>en</strong>ame.c_str());<br />
exit(1);<br />
}<br />
}<br />
#<strong>en</strong>dif // REQUIRE_H ///:~<br />
Los valores por defecto proporcionan m<strong>en</strong>sajes razonables que se pued<strong>en</strong> cambiar<br />
si es necesario.<br />
Fíjese <strong>en</strong> que <strong>en</strong> lugar de usar argum<strong>en</strong>tos char* se utiliza const string&. Esto<br />
permite tanto char*, cad<strong>en</strong>as string como argum<strong>en</strong>tos para estas funciones, y así<br />
270<br />
✐<br />
✐<br />
✐<br />
✐