Biblioteca de cliente de servicio web genérico (SOAP) para C ++

Estoy buscando una biblioteca de cliente de servicio web C ++ simple que se pueda vincular fácilmente a mi aplicación.

Preferiblemente esta biblioteca:

se puede usar para acceder a cualquier servicio web SOAP (para que pueda pasar la URL, el nombre del servicio web, el método del servicio web y todos los argumentos como argumentos para una llamada a función)se puede vincular estáticamente en una aplicación C ++ (por lo que no hay DLL)es gratuito o está disponible a bajo costose puede usar sin regalías en mi aplicaciónpuede consultar el servicio web para su WSDL y devolverme los nombres de métodos disponibles, los argumentos de los métodos y sus tipos de datos

Antes de que cualquiera de ustedes responda .NET: estado allí, lo probé. Mis principales objeciones contra .NET son:

puede generar el proxy pero es imposible cambiar el nombre del servicio web en el código del proxy generado posteriormente, ya que .NET usa la reflexión para verificar el nombre del servicio web (consulteLlame dinámicamente al servicio SOAP desde su propio lenguaje de script para mi pregunta sobre ese problema)generar la clase proxy sobre la marcha no siempre parece funcionar correctamente

Ya usé Google para buscar esta información, pero no pude encontrar una.

Gracias

EDITAR: Para aclarar esto más, realmente quiero algo donde pueda escribir código como este (o algo en este estilo):

SoapClient mySoapClient;
mySoapClient.setURL("http://someserver/somewebservice");
mySoapClient.setMethod("DoSomething");
mySoapClient.setParameter(1,"Hello");
mySoapClient.setParameter(2,12345);
mySoapClient.sendRequest();
string result;
mySoapClient.getResult(result);

Sin generación dinámica de código.

Respuestas a la pregunta(3)

Su respuesta a la pregunta