The use of three macros with variadic arguments was added to src/test/mempool_test.cpp in https://github.com/bitcoin/bitcoin/commit/f77e1d34fd5f17304ce319b5f962b8005592501a. 

The three macros below generate a compiler error with MSVC.

`#define MK_OUTPUTS(amounts...) std::vector<CAmount>{amounts}`
`#define MK_INPUTS(txs...) std::vector<CTransactionRef>{txs}`
`#define MK_INPUT_IDX(idxes...) std::vector<uint32_t>{idxes}`

The easy fix is to add a ',' after the named argument as per:

`#define MK_OUTPUTS(amounts,...) std::vector<CAmount>{amounts}`
`#define MK_INPUTS(txs,...) std::vector<CTransactionRef>{txs}`
`#define MK_INPUT_IDX(idxes,...) std::vector<uint32_t>{idxes}`

I don't know if that will break any other compilers.

If I had a spare 198 Swiss Francs I'd buy the C standard and check which is the correct approach, https://www.iso.org/standard/57853.html, but I don't.



tx7.vin[0].prevout = COutPoint(tx6.GetHash(), 0);
    tx7.vin[0].scriptSig = CScript() << OP_11;
    tx7.vout.resize(2);
    tx7.vout[0].scriptPubKey = CScript() << OP_11 << OP_EQUAL;
    tx7.vout[0].nValue = 10 * COIN;
    tx7.vout[1].scriptPubKey = CScript() << OP_11 << OP_EQUAL;
    tx7.vout[1].nValue = 1 * COIN;
    CTxMemPool::setEntries setAncestorsCalculated;
    std::string dummy;
    BOOST_CHECK_EQUAL(pool.CalculateMemPoolAncestors(entry.Fee(2000000LL).FromTx(tx7), setAncestorsCalculated, 100, 1000000, 1000, 1000000, dummy), true);
    BOOST_CHECK(setAncestorsCalculated == setAncestors);
    pool.addUnchecked(tx7.GetHash(), entry.FromTx(tx7), setAncestors);
    BOOST_CHECK_EQUAL(pool.size(), 7U);
    
    sortedOrder.erase(sortedOrder.begin());
    sortedOrder.push_back(tx6.GetHash().ToString());
    sortedOrder.push_back(tx7.GetHash().ToString());
    CheckSort<descendant_score>(pool, sortedOrder);
    
    CMutableTransaction tx8 = CMutableTransaction();
    tx8.vin.resize(1);
    tx8.vin[0].prevout = COutPoint(tx7.GetHash(), 0);
    tx8.vin[0].scriptSig = CScript() << OP_11;
    tx8.vout.resize(1);
    tx8.vout[0].scriptPubKey = CScript() << OP_11 << OP_EQUAL;
    tx8.vout[0].nValue = 10 * COIN;
    setAncestors.insert(pool.mapTx.find(tx7.GetHash()));
    pool.addUnchecked(tx8.GetHash(), entry.Fee(0LL).Time(2).FromTx(tx8), setAncestors);
    
    sortedOrder.insert(sortedOrder.begin(), tx8.GetHash().ToString());