mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-03 21:49:32 +01:00 
			
		
		
		
	Merge build 27
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
*v1.0 build 26 (master branch)*
 | 
			
		||||
*v1.0 build 27 (master branch)*
 | 
			
		||||
 | 
			
		||||
Build status (on Travis CI) [](https://travis-ci.org/philsquared/Catch)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,8 +13,8 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Declare Clara inside the Catch namespace
 | 
			
		||||
#define CLICHE_CLARA_OUTER_NAMESPACE Catch
 | 
			
		||||
#define STITCH_CLARA_OUTER_NAMESPACE Catch
 | 
			
		||||
#include "clara.h"
 | 
			
		||||
#undef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
#undef STITCH_CLARA_OUTER_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,11 @@ namespace Catch {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Option& operator= ( Option const& _other ) {
 | 
			
		||||
            reset();
 | 
			
		||||
            if( _other )
 | 
			
		||||
                nullableValue = new( storage ) T( *_other );
 | 
			
		||||
            if( &_other != this ) {
 | 
			
		||||
                reset();
 | 
			
		||||
                if( _other )
 | 
			
		||||
                    nullableValue = new( storage ) T( *_other );
 | 
			
		||||
            }
 | 
			
		||||
            return *this;
 | 
			
		||||
        }
 | 
			
		||||
        Option& operator = ( T const& _value ) {
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ namespace Catch {
 | 
			
		||||
 | 
			
		||||
    // These numbers are maintained by a script
 | 
			
		||||
    template <typename T>
 | 
			
		||||
    const T LibraryVersionInfo<T>::value( 1, 0, 26, "master" );
 | 
			
		||||
    const T LibraryVersionInfo<T>::value( 1, 0, 27, "master" );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
 | 
			
		||||
 
 | 
			
		||||
@@ -7,33 +7,178 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// Only use header guard if we are not using an outer namespace
 | 
			
		||||
#ifndef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
# ifdef TWOBLUECUBES_CLARA_H_INCLUDED
 | 
			
		||||
#  ifndef TWOBLUECUBES_CLARA_H_ALREADY_INCLUDED
 | 
			
		||||
#   define TWOBLUECUBES_CLARA_H_ALREADY_INCLUDED
 | 
			
		||||
#  endif
 | 
			
		||||
# else
 | 
			
		||||
#  define TWOBLUECUBES_CLARA_H_INCLUDED
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef TWOBLUECUBES_CLARA_H_ALREADY_INCLUDED
 | 
			
		||||
#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OUTER_NAMESPACE)
 | 
			
		||||
#ifndef STITCH_CLARA_OUTER_NAMESPACE
 | 
			
		||||
#define TWOBLUECUBES_CLARA_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
#ifndef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Clara
 | 
			
		||||
#include "tbc_text_format.h"
 | 
			
		||||
#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
#define STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE Clara
 | 
			
		||||
 | 
			
		||||
// ----------- #included from tbc_text_format.h -----------
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *  Created by Phil on 18/4/2013.
 | 
			
		||||
 *  Copyright 2013 Two Blue Cubes Ltd. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 *  Distributed under the Boost Software License, Version 1.0. (See accompanying
 | 
			
		||||
 *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | 
			
		||||
 */
 | 
			
		||||
// Only use header guard if we are not using an outer namespace
 | 
			
		||||
#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
 | 
			
		||||
#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
#define TBC_TEXT_FORMAT_H_INCLUDED
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include <sstream>
 | 
			
		||||
 | 
			
		||||
// Use optional outer namespace
 | 
			
		||||
#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
namespace Tbc {
 | 
			
		||||
 | 
			
		||||
#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
 | 
			
		||||
    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
 | 
			
		||||
#else
 | 
			
		||||
    const unsigned int consoleWidth = 80;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    struct TextAttributes {
 | 
			
		||||
        TextAttributes()
 | 
			
		||||
        :   initialIndent( std::string::npos ),
 | 
			
		||||
            indent( 0 ),
 | 
			
		||||
            width( consoleWidth-1 ),
 | 
			
		||||
            tabChar( '\t' )
 | 
			
		||||
        {}
 | 
			
		||||
 | 
			
		||||
        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
 | 
			
		||||
        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
 | 
			
		||||
        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
 | 
			
		||||
        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
 | 
			
		||||
 | 
			
		||||
        std::size_t initialIndent;  // indent of first line, or npos
 | 
			
		||||
        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
 | 
			
		||||
        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
 | 
			
		||||
        char tabChar;               // If this char is seen the indent is changed to current pos
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    class Text {
 | 
			
		||||
    public:
 | 
			
		||||
        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
 | 
			
		||||
        : attr( _attr )
 | 
			
		||||
        {
 | 
			
		||||
            std::string wrappableChars = " [({.,/|\\-";
 | 
			
		||||
            std::size_t indent = _attr.initialIndent != std::string::npos
 | 
			
		||||
                ? _attr.initialIndent
 | 
			
		||||
                : _attr.indent;
 | 
			
		||||
            std::string remainder = _str;
 | 
			
		||||
 | 
			
		||||
            while( !remainder.empty() ) {
 | 
			
		||||
                if( lines.size() >= 1000 ) {
 | 
			
		||||
                    lines.push_back( "... message truncated due to excessive size" );
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                std::size_t tabPos = std::string::npos;
 | 
			
		||||
                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
 | 
			
		||||
                std::size_t pos = remainder.find_first_of( '\n' );
 | 
			
		||||
                if( pos <= width ) {
 | 
			
		||||
                    width = pos;
 | 
			
		||||
                }
 | 
			
		||||
                pos = remainder.find_last_of( _attr.tabChar, width );
 | 
			
		||||
                if( pos != std::string::npos ) {
 | 
			
		||||
                    tabPos = pos;
 | 
			
		||||
                    if( remainder[width] == '\n' )
 | 
			
		||||
                        width--;
 | 
			
		||||
                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if( width == remainder.size() ) {
 | 
			
		||||
                    spliceLine( indent, remainder, width );
 | 
			
		||||
                }
 | 
			
		||||
                else if( remainder[width] == '\n' ) {
 | 
			
		||||
                    spliceLine( indent, remainder, width );
 | 
			
		||||
                    if( width <= 1 || remainder.size() != 1 )
 | 
			
		||||
                        remainder = remainder.substr( 1 );
 | 
			
		||||
                    indent = _attr.indent;
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    pos = remainder.find_last_of( wrappableChars, width );
 | 
			
		||||
                    if( pos != std::string::npos && pos > 0 ) {
 | 
			
		||||
                        spliceLine( indent, remainder, pos );
 | 
			
		||||
                        if( remainder[0] == ' ' )
 | 
			
		||||
                            remainder = remainder.substr( 1 );
 | 
			
		||||
                    }
 | 
			
		||||
                    else {
 | 
			
		||||
                        spliceLine( indent, remainder, width-1 );
 | 
			
		||||
                        lines.back() += "-";
 | 
			
		||||
                    }
 | 
			
		||||
                    if( lines.size() == 1 )
 | 
			
		||||
                        indent = _attr.indent;
 | 
			
		||||
                    if( tabPos != std::string::npos )
 | 
			
		||||
                        indent += tabPos;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
 | 
			
		||||
            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
 | 
			
		||||
            _remainder = _remainder.substr( _pos );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        typedef std::vector<std::string>::const_iterator const_iterator;
 | 
			
		||||
 | 
			
		||||
        const_iterator begin() const { return lines.begin(); }
 | 
			
		||||
        const_iterator end() const { return lines.end(); }
 | 
			
		||||
        std::string const& last() const { return lines.back(); }
 | 
			
		||||
        std::size_t size() const { return lines.size(); }
 | 
			
		||||
        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
 | 
			
		||||
        std::string toString() const {
 | 
			
		||||
            std::ostringstream oss;
 | 
			
		||||
            oss << *this;
 | 
			
		||||
            return oss.str();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
 | 
			
		||||
            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
 | 
			
		||||
                it != itEnd; ++it ) {
 | 
			
		||||
                if( it != _text.begin() )
 | 
			
		||||
                    _stream << "\n";
 | 
			
		||||
                _stream << *it;
 | 
			
		||||
            }
 | 
			
		||||
            return _stream;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    private:
 | 
			
		||||
        std::string str;
 | 
			
		||||
        TextAttributes attr;
 | 
			
		||||
        std::vector<std::string> lines;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
} // end namespace Tbc
 | 
			
		||||
 | 
			
		||||
#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
} // end outer namespace
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // TBC_TEXT_FORMAT_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
// ----------- end of #include from tbc_text_format.h -----------
 | 
			
		||||
// ........... back in /Users/philnash/Dev/OSS/Clara/srcs/clara.h
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#undef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#include <map>
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
// Use optional outer namespace
 | 
			
		||||
#ifdef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
namespace CLICHE_CLARA_OUTER_NAMESPACE {
 | 
			
		||||
#ifdef STITCH_CLARA_OUTER_NAMESPACE
 | 
			
		||||
namespace STITCH_CLARA_OUTER_NAMESPACE {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
namespace Clara {
 | 
			
		||||
@@ -310,7 +455,7 @@ namespace Clara {
 | 
			
		||||
            }
 | 
			
		||||
            void validate() const {
 | 
			
		||||
                if( boundField.takesArg() && !takesArg() )
 | 
			
		||||
                    throw std::logic_error( dbgName() + " must specify an arg name" );
 | 
			
		||||
                    throw std::logic_error( "command line argument '" + dbgName() + "' must specify a hint" );
 | 
			
		||||
            }
 | 
			
		||||
            std::string commands() const {
 | 
			
		||||
                std::ostringstream oss;
 | 
			
		||||
@@ -361,8 +506,10 @@ namespace Clara {
 | 
			
		||||
            {
 | 
			
		||||
                other.m_cl = NULL;
 | 
			
		||||
            }
 | 
			
		||||
            ~ArgBinder() {
 | 
			
		||||
                if( m_cl ) {
 | 
			
		||||
            // !TBD: Need to include workarounds to be able to declare this
 | 
			
		||||
            // destructor as able to throw exceptions
 | 
			
		||||
            ~ArgBinder() /* noexcept(false) */ {
 | 
			
		||||
                if( m_cl && !std::uncaught_exception() ) {
 | 
			
		||||
                    m_arg.validate();
 | 
			
		||||
                    if( m_arg.isFixedPositional() ) {
 | 
			
		||||
                        m_cl->m_positionalArgs.insert( std::make_pair( m_arg.position, m_arg ) );
 | 
			
		||||
@@ -507,6 +654,12 @@ namespace Clara {
 | 
			
		||||
            return oss.str();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ConfigT parseInto( int argc, char const * const * argv ) const {
 | 
			
		||||
            ConfigT config;
 | 
			
		||||
            parseInto( argc, argv, config );
 | 
			
		||||
            return config;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        std::vector<Parser::Token> parseInto( int argc, char const * const * argv, ConfigT& config ) const {
 | 
			
		||||
            std::string processName = argv[0];
 | 
			
		||||
            std::size_t lastSlash = processName.find_last_of( "/\\" );
 | 
			
		||||
@@ -617,9 +770,8 @@ namespace Clara {
 | 
			
		||||
 | 
			
		||||
} // end namespace Clara
 | 
			
		||||
 | 
			
		||||
#ifdef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
#ifdef STITCH_CLARA_OUTER_NAMESPACE
 | 
			
		||||
} // end outer namespace
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_CLARA_H_ALREADY_INCLUDED
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_CLARA_H_INCLUDED
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ for arg in sys.argv[1:]:
 | 
			
		||||
    arg = string.lower(arg)
 | 
			
		||||
    if arg == "nobump":
 | 
			
		||||
        bumpVersion = False
 | 
			
		||||
        print "Not bumping version number"
 | 
			
		||||
        print( "Not bumping version number" )
 | 
			
		||||
    elif arg == "noimpl":
 | 
			
		||||
        includeImpl = False
 | 
			
		||||
        bumpVersion = False
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
/*
 | 
			
		||||
 *  CATCH v1.0 build 26 (master branch)
 | 
			
		||||
 *  Generated: 2014-02-21 12:44:35.538000
 | 
			
		||||
 *  CATCH v1.0 build 27 (master branch)
 | 
			
		||||
 *  Generated: 2014-03-05 09:23:26.023000
 | 
			
		||||
 *  ----------------------------------------------------------
 | 
			
		||||
 *  This file has been merged from multiple headers. Please don't edit it directly
 | 
			
		||||
 *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
 | 
			
		||||
@@ -958,7 +958,7 @@ struct CollectConsoleOutput
 | 
			
		||||
        }; \
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//#undef CATCH_CONFIG_VARIADIC_MACROS
 | 
			
		||||
// #undef CATCH_CONFIG_VARIADIC_MACROS
 | 
			
		||||
 | 
			
		||||
#ifdef CATCH_CONFIG_VARIADIC_MACROS
 | 
			
		||||
 | 
			
		||||
@@ -2832,9 +2832,11 @@ namespace Catch {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Option& operator= ( Option const& _other ) {
 | 
			
		||||
            reset();
 | 
			
		||||
            if( _other )
 | 
			
		||||
                nullableValue = new( storage ) T( *_other );
 | 
			
		||||
            if( &_other != this ) {
 | 
			
		||||
                reset();
 | 
			
		||||
                if( _other )
 | 
			
		||||
                    nullableValue = new( storage ) T( *_other );
 | 
			
		||||
            }
 | 
			
		||||
            return *this;
 | 
			
		||||
        }
 | 
			
		||||
        Option& operator = ( T const& _value ) {
 | 
			
		||||
@@ -3080,9 +3082,6 @@ namespace Catch
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//#include "catch_interfaces_registry_hub.h"
 | 
			
		||||
//#include "catch_interfaces_config.h"
 | 
			
		||||
 | 
			
		||||
#include <ostream>
 | 
			
		||||
 | 
			
		||||
namespace Catch {
 | 
			
		||||
@@ -4330,42 +4329,31 @@ namespace Catch {
 | 
			
		||||
#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
 | 
			
		||||
 | 
			
		||||
// Declare Clara inside the Catch namespace
 | 
			
		||||
#define CLICHE_CLARA_OUTER_NAMESPACE Catch
 | 
			
		||||
#define STITCH_CLARA_OUTER_NAMESPACE Catch
 | 
			
		||||
// #included from: clara.h
 | 
			
		||||
 | 
			
		||||
// Only use header guard if we are not using an outer namespace
 | 
			
		||||
#ifndef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
# ifdef TWOBLUECUBES_CLARA_H_INCLUDED
 | 
			
		||||
#  ifndef TWOBLUECUBES_CLARA_H_ALREADY_INCLUDED
 | 
			
		||||
#   define TWOBLUECUBES_CLARA_H_ALREADY_INCLUDED
 | 
			
		||||
#  endif
 | 
			
		||||
# else
 | 
			
		||||
#  define TWOBLUECUBES_CLARA_H_INCLUDED
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef TWOBLUECUBES_CLARA_H_ALREADY_INCLUDED
 | 
			
		||||
#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OUTER_NAMESPACE)
 | 
			
		||||
#ifndef STITCH_CLARA_OUTER_NAMESPACE
 | 
			
		||||
#define TWOBLUECUBES_CLARA_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
#define STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE Clara
 | 
			
		||||
 | 
			
		||||
// ----------- #included from tbc_text_format.h -----------
 | 
			
		||||
 | 
			
		||||
#ifndef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Clara
 | 
			
		||||
// #included from: tbc_text_format.h
 | 
			
		||||
// Only use header guard if we are not using an outer namespace
 | 
			
		||||
#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
 | 
			
		||||
#  ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
 | 
			
		||||
#   define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
 | 
			
		||||
#  endif
 | 
			
		||||
# else
 | 
			
		||||
#  define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
 | 
			
		||||
# endif
 | 
			
		||||
#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
 | 
			
		||||
#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
#define TBC_TEXT_FORMAT_H_INCLUDED
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include <sstream>
 | 
			
		||||
 | 
			
		||||
// Use optional outer namespace
 | 
			
		||||
#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
 | 
			
		||||
#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
namespace Tbc {
 | 
			
		||||
@@ -4489,24 +4477,27 @@ namespace Tbc {
 | 
			
		||||
 | 
			
		||||
} // end namespace Tbc
 | 
			
		||||
 | 
			
		||||
#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
} // end outer namespace
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
 | 
			
		||||
#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
#endif // TBC_TEXT_FORMAT_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
// ----------- end of #include from tbc_text_format.h -----------
 | 
			
		||||
// ........... back in /Users/philnash/Dev/OSS/Clara/srcs/clara.h
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <vector>
 | 
			
		||||
#undef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#include <map>
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
// Use optional outer namespace
 | 
			
		||||
#ifdef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
namespace CLICHE_CLARA_OUTER_NAMESPACE {
 | 
			
		||||
#ifdef STITCH_CLARA_OUTER_NAMESPACE
 | 
			
		||||
namespace STITCH_CLARA_OUTER_NAMESPACE {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
namespace Clara {
 | 
			
		||||
@@ -4782,7 +4773,7 @@ namespace Clara {
 | 
			
		||||
            }
 | 
			
		||||
            void validate() const {
 | 
			
		||||
                if( boundField.takesArg() && !takesArg() )
 | 
			
		||||
                    throw std::logic_error( dbgName() + " must specify an arg name" );
 | 
			
		||||
                    throw std::logic_error( "command line argument '" + dbgName() + "' must specify a hint" );
 | 
			
		||||
            }
 | 
			
		||||
            std::string commands() const {
 | 
			
		||||
                std::ostringstream oss;
 | 
			
		||||
@@ -4833,8 +4824,10 @@ namespace Clara {
 | 
			
		||||
            {
 | 
			
		||||
                other.m_cl = NULL;
 | 
			
		||||
            }
 | 
			
		||||
            ~ArgBinder() {
 | 
			
		||||
                if( m_cl ) {
 | 
			
		||||
            // !TBD: Need to include workarounds to be able to declare this
 | 
			
		||||
            // destructor as able to throw exceptions
 | 
			
		||||
            ~ArgBinder() /* noexcept(false) */ {
 | 
			
		||||
                if( m_cl && !std::uncaught_exception() ) {
 | 
			
		||||
                    m_arg.validate();
 | 
			
		||||
                    if( m_arg.isFixedPositional() ) {
 | 
			
		||||
                        m_cl->m_positionalArgs.insert( std::make_pair( m_arg.position, m_arg ) );
 | 
			
		||||
@@ -4979,6 +4972,12 @@ namespace Clara {
 | 
			
		||||
            return oss.str();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ConfigT parseInto( int argc, char const * const * argv ) const {
 | 
			
		||||
            ConfigT config;
 | 
			
		||||
            parseInto( argc, argv, config );
 | 
			
		||||
            return config;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        std::vector<Parser::Token> parseInto( int argc, char const * const * argv, ConfigT& config ) const {
 | 
			
		||||
            std::string processName = argv[0];
 | 
			
		||||
            std::size_t lastSlash = processName.find_last_of( "/\\" );
 | 
			
		||||
@@ -5089,13 +5088,12 @@ namespace Clara {
 | 
			
		||||
 | 
			
		||||
} // end namespace Clara
 | 
			
		||||
 | 
			
		||||
#ifdef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
#ifdef STITCH_CLARA_OUTER_NAMESPACE
 | 
			
		||||
} // end outer namespace
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_CLARA_H_ALREADY_INCLUDED
 | 
			
		||||
 | 
			
		||||
#undef CLICHE_CLARA_OUTER_NAMESPACE
 | 
			
		||||
#endif // TWOBLUECUBES_CLARA_H_INCLUDED
 | 
			
		||||
#undef STITCH_CLARA_OUTER_NAMESPACE
 | 
			
		||||
 | 
			
		||||
#include <fstream>
 | 
			
		||||
 | 
			
		||||
@@ -7492,7 +7490,7 @@ namespace Catch {
 | 
			
		||||
 | 
			
		||||
    // These numbers are maintained by a script
 | 
			
		||||
    template <typename T>
 | 
			
		||||
    const T LibraryVersionInfo<T>::value( 1, 0, 26, "master" );
 | 
			
		||||
    const T LibraryVersionInfo<T>::value( 1, 0, 27, "master" );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// #included from: catch_message.hpp
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user