| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 
							- /*
 
-  *  Created by Phil on 29/10/2010.
 
-  *  Copyright 2010 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)
 
-  */
 
- #ifndef TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
 
- #define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
 
- #include "catch_compiler_capabilities.h"
 
- #define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
 
- #define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
 
- #ifdef CATCH_CONFIG_COUNTER
 
- #  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
 
- #else
 
- #  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
 
- #endif
 
- #include <iosfwd>
 
- #include <string>
 
- #include <cstdint>
 
- // We need a dummy global operator<< so we can bring it into Catch namespace later
 
- struct Catch_global_namespace_dummy {};
 
- std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy);
 
- namespace Catch {
 
-     struct CaseSensitive { enum Choice {
 
-         Yes,
 
-         No
 
-     }; };
 
-     class NonCopyable {
 
-         NonCopyable( NonCopyable const& )              = delete;
 
-         NonCopyable( NonCopyable && )                  = delete;
 
-         NonCopyable& operator = ( NonCopyable const& ) = delete;
 
-         NonCopyable& operator = ( NonCopyable && )     = delete;
 
-     protected:
 
-         NonCopyable();
 
-         virtual ~NonCopyable();
 
-     };
 
-     struct SourceLineInfo {
 
-         SourceLineInfo() = delete;
 
-         SourceLineInfo( char const* _file, std::size_t _line ) noexcept
 
-         :   file( _file ),
 
-             line( _line )
 
-         {}
 
-         SourceLineInfo( SourceLineInfo const& other )            = default;
 
-         SourceLineInfo& operator = ( SourceLineInfo const& )     = default;
 
-         SourceLineInfo( SourceLineInfo&& )              noexcept = default;
 
-         SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default;
 
-         bool empty() const noexcept { return file[0] == '\0'; }
 
-         bool operator == ( SourceLineInfo const& other ) const noexcept;
 
-         bool operator < ( SourceLineInfo const& other ) const noexcept;
 
-         char const* file;
 
-         std::size_t line;
 
-     };
 
-     std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
 
-     // Bring in operator<< from global namespace into Catch namespace
 
-     // This is necessary because the overload of operator<< above makes
 
-     // lookup stop at namespace Catch
 
-     using ::operator<<;
 
-     // Use this in variadic streaming macros to allow
 
-     //    >> +StreamEndStop
 
-     // as well as
 
-     //    >> stuff +StreamEndStop
 
-     struct StreamEndStop {
 
-         std::string operator+() const;
 
-     };
 
-     template<typename T>
 
-     T const& operator + ( T const& value, StreamEndStop ) {
 
-         return value;
 
-     }
 
- }
 
- #define CATCH_INTERNAL_LINEINFO \
 
-     ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
 
- #endif // TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
 
 
  |