virtual void getFilteredTests( TestSpec const& testSpec, IConfig const& config, std::vector<TestCase>& matchingTestCases ) const {
     for( std::vector<TestCase>::const_iterator  it = m_functionsInOrder.begin(),
                                                 itEnd = m_functionsInOrder.end();
             it != itEnd;
             ++it ) {
         if( testSpec.matches( *it ) && ( config.allowThrows() || !it->throws() ) )
             matchingTestCases.push_back( *it );
     }
 }
        virtual void getFilteredTests( TestSpec const& testSpec, IConfig const& config, std::vector<TestCase>& matchingTestCases, bool negated = false ) const {

            for( std::vector<TestCase>::const_iterator  it = m_functionsInOrder.begin(),
                                                        itEnd = m_functionsInOrder.end();
                    it != itEnd;
                    ++it ) {
                bool includeTest = testSpec.matches( *it ) && ( config.allowThrows() || !it->throws() );
                if( includeTest != negated )
                    matchingTestCases.push_back( *it );
            }
            sortTests( config, matchingTestCases );
        }
 bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) {
     return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() );
 }