diff options
Diffstat (limited to 'src/tclap/OptionalUnlabeledTracker.h')
-rw-r--r--[-rwxr-xr-x] | src/tclap/OptionalUnlabeledTracker.h | 96 |
1 files changed, 51 insertions, 45 deletions
diff --git a/src/tclap/OptionalUnlabeledTracker.h b/src/tclap/OptionalUnlabeledTracker.h index 8174c5f..1ac8220 100755..100644 --- a/src/tclap/OptionalUnlabeledTracker.h +++ b/src/tclap/OptionalUnlabeledTracker.h @@ -1,24 +1,22 @@ - - -/****************************************************************************** - * +/****************************************************************************** + * * file: OptionalUnlabeledTracker.h - * + * * Copyright (c) 2005, Michael E. Smoot . * All rights reverved. - * + * * See the file COPYING in the top directory of this distribution for * more information. - * - * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - *****************************************************************************/ + * + * THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + *****************************************************************************/ #ifndef TCLAP_OPTIONAL_UNLABELED_TRACKER_H @@ -26,37 +24,45 @@ #include <string> -namespace TCLAP { - -class OptionalUnlabeledTracker -{ - - public: - - static void check( bool req, const std::string& argName ); - - static void gotOptional() { alreadyOptionalRef() = true; } - - static bool& alreadyOptional() { return alreadyOptionalRef(); } - - private: - - static bool& alreadyOptionalRef() { static bool ct = false; return ct; } -}; - - -inline void OptionalUnlabeledTracker::check( bool req, const std::string& argName ) +namespace TCLAP { - if ( OptionalUnlabeledTracker::alreadyOptional() ) - throw( SpecificationException( - "You can't specify ANY Unlabeled Arg following an optional Unlabeled Arg", - argName ) ); - - if ( !req ) - OptionalUnlabeledTracker::gotOptional(); -} - + class OptionalUnlabeledTracker + { + public: + static void check(bool req, const std::string &argName); + + static void gotOptional() + { + alreadyOptionalRef() = true; + } + + static bool& alreadyOptional() + { + return alreadyOptionalRef(); + } + + private: + static bool& alreadyOptionalRef() + { + static bool ct = false; + return ct; + } + }; + + inline void OptionalUnlabeledTracker::check(bool req, const std::string &argName) + { + if (OptionalUnlabeledTracker::alreadyOptional()) + { + throw (SpecificationException( + "You can't specify ANY Unlabeled Arg following an optional Unlabeled Arg", argName)); + } + + if (!req) + { + OptionalUnlabeledTracker::gotOptional(); + } + } } // namespace TCLAP #endif |