Removed SafeBool

This commit is contained in:
Phil Nash 2017-04-25 14:46:48 +00:00
parent e1bca7017d
commit cc8206f4c3
4 changed files with 5 additions and 16 deletions

View File

@ -44,17 +44,6 @@ namespace Catch {
virtual ~NonCopyable(); virtual ~NonCopyable();
}; };
class SafeBool {
public:
typedef void (SafeBool::*type)() const;
static type makeSafe( bool value ) {
return value ? &SafeBool::trueValue : 0;
}
private:
void trueValue() const {}
};
template<typename ContainerT> template<typename ContainerT>
inline void deleteAll( ContainerT& container ) { inline void deleteAll( ContainerT& container ) {
for( auto p : container ) for( auto p : container )

View File

@ -61,8 +61,8 @@ namespace Catch {
bool none() const { return nullableValue == nullptr; } bool none() const { return nullableValue == nullptr; }
bool operator !() const { return nullableValue == nullptr; } bool operator !() const { return nullableValue == nullptr; }
operator SafeBool::type() const { explicit operator bool() const {
return SafeBool::makeSafe( some() ); return some();
} }
private: private:

View File

@ -56,7 +56,7 @@ namespace Catch {
T& operator*() const { return *m_p; } T& operator*() const { return *m_p; }
T* operator->() const { return m_p; } T* operator->() const { return m_p; }
bool operator !() const { return m_p == nullptr; } bool operator !() const { return m_p == nullptr; }
operator SafeBool::type() const { return SafeBool::makeSafe( m_p != nullptr ); } explicit operator bool() const { return m_p != nullptr; }
private: private:
T* m_p; T* m_p;

View File

@ -293,8 +293,8 @@ struct Boolable
{ {
explicit Boolable( bool value ) : m_value( value ) {} explicit Boolable( bool value ) : m_value( value ) {}
operator Catch::SafeBool::type() const { explicit operator bool() const {
return Catch::SafeBool::makeSafe( m_value ); return m_value;
} }
bool m_value; bool m_value;