Commit 9cd015ac3765220030f4db1a78b6ec98dfa58439

Authored by Eyal Rozenberg
Committed by GitHub
1 parent 628dc920

Regards #340, #345: Removed unnecessary indentation of exceptions namespace + ad…

…ded end-of-namespace comment (#351)
Showing 1 changed file with 124 additions and 122 deletions
include/cxxopts.hpp
@@ -371,154 +371,156 @@ class Value : public std::enable_shared_from_this<Value> @@ -371,154 +371,156 @@ class Value : public std::enable_shared_from_this<Value>
371 #pragma GCC diagnostic pop 371 #pragma GCC diagnostic pop
372 #endif 372 #endif
373 namespace exceptions { 373 namespace exceptions {
374 - class exception : public std::exception  
375 - {  
376 - public:  
377 - explicit exception(std::string message)  
378 - : m_message(std::move(message))  
379 - {  
380 - }  
381 374
382 - CXXOPTS_NODISCARD  
383 - const char*  
384 - what() const noexcept override  
385 - {  
386 - return m_message.c_str();  
387 - }  
388 -  
389 - private:  
390 - std::string m_message;  
391 - }; 375 +class exception : public std::exception
  376 +{
  377 + public:
  378 + explicit exception(std::string message)
  379 + : m_message(std::move(message))
  380 + {
  381 + }
392 382
393 - class specification : public exception 383 + CXXOPTS_NODISCARD
  384 + const char*
  385 + what() const noexcept override
394 { 386 {
395 - public: 387 + return m_message.c_str();
  388 + }
396 389
397 - explicit specification(const std::string& message)  
398 - : exception(message)  
399 - {  
400 - }  
401 - }; 390 + private:
  391 + std::string m_message;
  392 +};
402 393
403 - class parsing : public exception  
404 - {  
405 - public:  
406 - explicit parsing(const std::string& message)  
407 - : exception(message)  
408 - {  
409 - }  
410 - }; 394 +class specification : public exception
  395 +{
  396 + public:
411 397
412 - class option_already_exists : public specification 398 + explicit specification(const std::string& message)
  399 + : exception(message)
413 { 400 {
414 - public:  
415 - explicit option_already_exists(const std::string& option)  
416 - : specification("Option " + LQUOTE + option + RQUOTE + " already exists")  
417 - {  
418 - }  
419 - }; 401 + }
  402 +};
420 403
421 - class invalid_option_format : public specification 404 +class parsing : public exception
  405 +{
  406 + public:
  407 + explicit parsing(const std::string& message)
  408 + : exception(message)
422 { 409 {
423 - public:  
424 - explicit invalid_option_format(const std::string& format)  
425 - : specification("Invalid option format " + LQUOTE + format + RQUOTE)  
426 - {  
427 - }  
428 - }; 410 + }
  411 +};
429 412
430 - class invalid_option_syntax : public parsing {  
431 - public:  
432 - explicit invalid_option_syntax(const std::string& text)  
433 - : parsing("Argument " + LQUOTE + text + RQUOTE +  
434 - " starts with a - but has incorrect syntax")  
435 - {  
436 - }  
437 - }; 413 +class option_already_exists : public specification
  414 +{
  415 + public:
  416 + explicit option_already_exists(const std::string& option)
  417 + : specification("Option " + LQUOTE + option + RQUOTE + " already exists")
  418 + {
  419 + }
  420 +};
438 421
439 - class no_such_option : public parsing 422 +class invalid_option_format : public specification
  423 +{
  424 + public:
  425 + explicit invalid_option_format(const std::string& format)
  426 + : specification("Invalid option format " + LQUOTE + format + RQUOTE)
440 { 427 {
441 - public:  
442 - explicit no_such_option(const std::string& option)  
443 - : parsing("Option " + LQUOTE + option + RQUOTE + " does not exist")  
444 - {  
445 - }  
446 - }; 428 + }
  429 +};
447 430
448 - class missing_argument : public parsing 431 +class invalid_option_syntax : public parsing {
  432 + public:
  433 + explicit invalid_option_syntax(const std::string& text)
  434 + : parsing("Argument " + LQUOTE + text + RQUOTE +
  435 + " starts with a - but has incorrect syntax")
449 { 436 {
450 - public:  
451 - explicit missing_argument(const std::string& option)  
452 - : parsing(  
453 - "Option " + LQUOTE + option + RQUOTE + " is missing an argument"  
454 - )  
455 - {  
456 - }  
457 - }; 437 + }
  438 +};
458 439
459 - class option_requires_argument : public parsing 440 +class no_such_option : public parsing
  441 +{
  442 + public:
  443 + explicit no_such_option(const std::string& option)
  444 + : parsing("Option " + LQUOTE + option + RQUOTE + " does not exist")
460 { 445 {
461 - public:  
462 - explicit option_requires_argument(const std::string& option)  
463 - : parsing(  
464 - "Option " + LQUOTE + option + RQUOTE + " requires an argument"  
465 - )  
466 - {  
467 - }  
468 - }; 446 + }
  447 +};
469 448
470 - class gratuitous_argument_for_option : public parsing 449 +class missing_argument : public parsing
  450 +{
  451 + public:
  452 + explicit missing_argument(const std::string& option)
  453 + : parsing(
  454 + "Option " + LQUOTE + option + RQUOTE + " is missing an argument"
  455 + )
471 { 456 {
472 - public:  
473 - gratuitous_argument_for_option  
474 - (  
475 - const std::string& option,  
476 - const std::string& arg 457 + }
  458 +};
  459 +
  460 +class option_requires_argument : public parsing
  461 +{
  462 + public:
  463 + explicit option_requires_argument(const std::string& option)
  464 + : parsing(
  465 + "Option " + LQUOTE + option + RQUOTE + " requires an argument"
477 ) 466 )
478 - : parsing(  
479 - "Option " + LQUOTE + option + RQUOTE +  
480 - " does not take an argument, but argument " +  
481 - LQUOTE + arg + RQUOTE + " given"  
482 - )  
483 - {  
484 - }  
485 - }; 467 + {
  468 + }
  469 +};
486 470
487 - class requested_option_not_present : public parsing 471 +class gratuitous_argument_for_option : public parsing
  472 +{
  473 + public:
  474 + gratuitous_argument_for_option
  475 + (
  476 + const std::string& option,
  477 + const std::string& arg
  478 + )
  479 + : parsing(
  480 + "Option " + LQUOTE + option + RQUOTE +
  481 + " does not take an argument, but argument " +
  482 + LQUOTE + arg + RQUOTE + " given"
  483 + )
488 { 484 {
489 - public:  
490 - explicit requested_option_not_present(const std::string& option)  
491 - : parsing("Option " + LQUOTE + option + RQUOTE + " not present")  
492 - {  
493 - }  
494 - }; 485 + }
  486 +};
495 487
496 - class option_has_no_value : public exception 488 +class requested_option_not_present : public parsing
  489 +{
  490 + public:
  491 + explicit requested_option_not_present(const std::string& option)
  492 + : parsing("Option " + LQUOTE + option + RQUOTE + " not present")
497 { 493 {
498 - public:  
499 - explicit option_has_no_value(const std::string& option)  
500 - : exception(  
501 - !option.empty() ?  
502 - ("Option " + LQUOTE + option + RQUOTE + " has no value") :  
503 - "Option has no value")  
504 - {  
505 - }  
506 - }; 494 + }
  495 +};
507 496
508 - class incorrect_argument_type : public parsing 497 +class option_has_no_value : public exception
  498 +{
  499 + public:
  500 + explicit option_has_no_value(const std::string& option)
  501 + : exception(
  502 + !option.empty() ?
  503 + ("Option " + LQUOTE + option + RQUOTE + " has no value") :
  504 + "Option has no value")
509 { 505 {
510 - public:  
511 - explicit incorrect_argument_type  
512 - (  
513 - const std::string& arg 506 + }
  507 +};
  508 +
  509 +class incorrect_argument_type : public parsing
  510 +{
  511 + public:
  512 + explicit incorrect_argument_type
  513 + (
  514 + const std::string& arg
  515 + )
  516 + : parsing(
  517 + "Argument " + LQUOTE + arg + RQUOTE + " failed to parse"
514 ) 518 )
515 - : parsing(  
516 - "Argument " + LQUOTE + arg + RQUOTE + " failed to parse"  
517 - )  
518 - {  
519 - }  
520 - };  
521 -} 519 + {
  520 + }
  521 +};
  522 +
  523 +} // namespace exceptions
522 524
523 template <typename T> 525 template <typename T>
524 void throw_or_mimic(const std::string& text) 526 void throw_or_mimic(const std::string& text)