Happens on all recent builds. Seemingly unrelated to any code changes.

Last pass: https://ci.appveyor.com/project/DrahtBot/bitcoin/builds/30240770
First fail: https://ci.appveyor.com/project/DrahtBot/bitcoin/builds/30241275
First fail on master: https://ci.appveyor.com/project/DrahtBot/bitcoin/builds/30241926

The first fail happened on the 0.19 branch. Is the appveyor cache shared across branches?

Otherwise it could be a msvc update or another dependency that broke it. If so, I wish we figure out a way to freeze the dependencies and compileres in some way.


```
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(330,10): error C2976: 'std::deque': too few template arguments [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(330,1): error C2079: 'last_few' uses undefined class 'std::deque' [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C2672: 'begin': no matching overloaded function found [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C2893: Failed to specialize function template 'unknown-type std::begin(_Container &)' [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C2784: 'const _Elem *std::begin(std::initializer_list<_Elem>) noexcept': could not deduce template argument for 'std::initializer_list<_Elem>' from 'int' [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C2672: 'end': no matching overloaded function found [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C2893: Failed to specialize function template 'unknown-type std::end(_Container &)' [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C2784: 'const _Elem *std::end(std::initializer_list<_Elem>) noexcept': could not deduce template argument for 'std::initializer_list<_Elem>' from 'int' [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C3536: '<begin>$L0': cannot be used before it is initialized [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C3536: '<end>$L0': cannot be used before it is initialized [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
C:\projects\bitcoin\src\test\cuckoocache_tests.cpp(341,1): error C2100: illegal indirection [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
for (uint32_t i = 0; i < total; ++i) {
        if (last_few.size() == WINDOW_SIZE)
            last_few.pop_front();
        last_few.emplace_back(BLOCK_SIZE, set);
        uint32_t count = 0;
        for (auto& act : last_few)
            for (uint32_t k = 0; k < POP_AMOUNT; ++k) {
                count += set.contains(act.reads.back(), true);
                act.reads.pop_back();
            }
        
        
        
        double hit = (double(count)) / (last_few.size() * POP_AMOUNT);
        
        BOOST_CHECK(hit > min_hit_rate);
        
        
        out_of_tight_tolerance += hit < tight_hit_rate;
    }
    
    
    BOOST_CHECK(double(out_of_tight_tolerance) / double(total) < max_rate_less_than_tight_hit_rate);
}
BOOST_AUTO_TEST_CASE(cuckoocache_generations)
{
    test_cache_generations<CuckooCache::cache<uint256, SignatureCacheHasher>>();
}
BOOST_AUTO_TEST_SUITE_END();