I prepared a simple test project: https://1drv.ms/u/s!AtSPCxnvttzehGyK1Kj0Vv9eS4ab?e=wTF8mR
The error remained is:
connectionfactory.h(8): error C2065: 'DBTestConnection': undeclared identifier
connectionfactory.h(9): error C2923: 'ConnectionPoolFactory': 'DBTestConnection' is not a valid template type argument for parameter 'T'
connectionfactory.h(23): error C2913: explicit specialization; 'ConnectionPoolFactory' is not a specialization of a class template
from this header file:
#pragma once
#include "connection.h"
#include "pool.h"
#include "DBTestConnection.h"
template <>
class ConnectionPoolFactory<DBTestConnection> // <--- error
{
public:
static std::unique_ptr<ConnectionPool> create(const std::uint16_t& num_connections)
{
std::vector<std::unique_ptr<Connection>> connections;
for (std::uint16_t k = 0; k < num_connections; ++k)
{
connections.emplace_back(std::unique_ptr<DBTestConnection>(new DBTestConnection{}));
}
return std::unique_ptr<ConnectionPool>(new ConnectionPool{ std::move(connections) });
}
private:
ConnectionPoolFactory() = default;
};
How can I solve it ?