h1

Errores portando aplicaciones C++ Windows a Solaris (V)

29/12/2012

Al portar una aplicación C++ para Windows desarrollada en Visual Studio hacia Solaris o entornos Unix, se recomienda utilizar las siguientes conversiones y consejos.

EXCEPCIONES

throw std::bad_exception("cAnsiString::ThrowIfOutOfRange. Index is out of range");
Cambiar por:
throw std::runtime_error("cAnsiString::ThrowIfOutOfRange. Index is out of range");

"src/MonteCarlo/cPathCollection.cpp", line 74: Error: Cannot cast from const char* to std::bad_alloc.
Lanzar la excepción sin ningún parámetro.

std::exception
Cambiar por std::runtime_error

VARIOS
headers/ContractPricing/MarketData/cMarketCurve.h:29: error: expected type-specifier before '...' token
Especificar la excepción, generalmente conocida en su cabecera (si no, indicar “Exceptions::cException”)

ParametricImpliedVolatility/cSliceBasedImpliedVolatility.cpp", line 85: Error: The function "lower_bound" must have a prototype.
Declarar la function en el .h

"src/Stock/LogNormal/cBlackScholesEuropeanOptionPricingAnalyticalProblem.cpp", line 27: Error: Utils::DataContainers::cItemDrivenPtrVectorCollection<ContractPricing::Stock::LogNormal::cBlackScholesEuropeanOptionPricingAnalyticalProblem>::Add(ContractPricing::Stock::LogNormal::cBlackScholesEuropeanOptionPricingAnalyticalProblem*) is not accessible from static ContractPricing::Stock::LogNormal::cBlackScholesEuropeanOptionPricingAnalyticalProblem::AddToCollection(const Utils::Memory::cSharedHeapPtr<ContractPricing::Stock::cEuropeanOptionContract, Utils::Memory::cScalarDestroyer, Utils::Synchronization::cFakeSynchronizer>&, ContractPricing::MarketData::cStockImpliedVolatility*, ContractPricing::MarketData::Test::cYieldCurve*, ContractPricing::MarketData::cDividendYieldCurve*, ContractPricing::MarketData::cStockSpotLevel*, Utils::DataContainers::cItemDrivenPtrVectorCollection<ContractPricing::Stock::LogNormal::cBlackScholesEuropeanOptionPricingAnalyticalProblem>*).
Mover de Private a Public el método.

"headers/HestonUtils.h", line 34: Error: The function "OutputDebugString" must have a prototype.
Sustituirlo por un cout.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: