Fix building with C++14: * Add 'noexcept(false)' to throwing destructors in C++11 mode * Properly guard C declarations with extern "C" scopes * Avoid erroneous overloaded suffix operator errors, due to missing spaces * Add explicit casts to avoid -Wnarrowing errors * Add 'this->' for dependent identifiers in derived class templates, previously required -fpermissive --- a/bvAlignedReads.cpp +++ b/bvAlignedReads.cpp @@ -126,7 +126,11 @@ } -bvAlignedReads :: ~bvAlignedReads() { +bvAlignedReads :: ~bvAlignedReads() +#if __cplusplus >= 201103L + noexcept(false) +#endif +{ assert( pBamView_->aBVAlignedReads_.remove( this ) ); --- a/bvAlignedReads.h +++ b/bvAlignedReads.h @@ -81,7 +81,11 @@ const FileName& filReferenceSequenceFile, bamView* pBamView ); - ~bvAlignedReads(); + ~bvAlignedReads() +#if __cplusplus >= 201103L + noexcept(false) +#endif + ; bool operator==( const bvAlignedReads& myBVAlignedReads ) const { return( this == &myBVAlignedReads ); --- a/chromatData.h +++ b/chromatData.h @@ -58,6 +58,9 @@ #ifndef CHROMATDATA_DEFINED #define CHROMATDATA_DEFINED +#ifdef __cplusplus +extern "C" { +#endif #ifndef FLOAT #define FLOAT double @@ -131,4 +134,8 @@ int freeChromatData(); #endif +#ifdef __cplusplus +} +#endif + #endif --- a/compareContigs.cpp +++ b/compareContigs.cpp @@ -126,6 +126,9 @@ compareContigs :: ~compareContigs() +#if __cplusplus >= 201103L + noexcept(false) +#endif { if ( !bCalledFromMakeJoins_ ) { --- a/compareContigs.h +++ b/compareContigs.h @@ -137,7 +137,11 @@ compareContigs( ContigWin* pContigWin, const int nConsPos1); compareContigs(); // for assemblyView - ~compareContigs(); + ~compareContigs() +#if __cplusplus >= 201103L + noexcept(false) +#endif + ; // this makes RWTPtrOrderedVector in ConsEd happy bool operator==( const compareContigs& compC ) const { --- a/filePopupAndGetAceFilename.cpp +++ b/filePopupAndGetAceFilename.cpp @@ -317,7 +317,7 @@ struct tm* pTM = localtime( &( pAceFile->stat_.st_mtime ) ); strftime( szDateTime, nDateTimeSize, - quote(%H)":"quote(%M)":"quote(%S)" %e-%h-%Y", + quote(%H) ":" quote(%M) ":" quote(%S) " %e-%h-%Y", pTM ); RWCString soDescription = RWCString( szDateTime ) + " " + (*pAceFile); @@ -620,7 +620,7 @@ struct tm* pTM = localtime( &( pAceFile->stat_.st_mtime ) ); strftime( szDateTime, nDateTimeSize, - quote(%H)":"quote(%M)":"quote(%S)" %e-%h-%Y", + quote(%H) ":" quote(%M) ":" quote(%S) " %e-%h-%Y", pTM ); RWCString soDescription = RWCString( szDateTime ) + " " + (*pAceFile); --- a/findTraceExtrema.h +++ b/findTraceExtrema.h @@ -44,8 +44,15 @@ #include "chromatData.h" +#ifdef __cplusplus +extern "C" { +#endif + int findTraceExtrema( ChromatData *chromatData ); +#ifdef __cplusplus +} +#endif #endif --- a/makeUpper.h +++ b/makeUpper.h @@ -42,6 +42,14 @@ #ifndef MAKEUPPER_INCLUDED #define MAKEUPPER_INCLUDED +#ifdef __cplusplus +extern "C" { +#endif + void makeUpper( char* szStringOfMixedCase ); +#ifdef __cplusplus +} +#endif + #endif --- a/nextPhredPipeline.cpp +++ b/nextPhredPipeline.cpp @@ -476,7 +476,7 @@ void nextPhredPipeline :: openAndLockControlFile() { - nFDControlFile_ = open( filControlFile_.data(), O_CREAT |O_RDWR ); + nFDControlFile_ = open( filControlFile_.data(), O_CREAT |O_RDWR, 0600); if ( nFDControlFile_ == -1 ) { THROW_FILE_ERROR( filControlFile_ ); } --- a/readABI.h +++ b/readABI.h @@ -56,10 +56,18 @@ #include "chromatData.h" +#ifdef __cplusplus +extern "C" { +#endif + #ifdef ANSI_C ChromatData *readABI( char *fn, int *status ); #else ChromatData *readABI(); #endif +#ifdef __cplusplus +} +#endif + #endif --- a/readData.h +++ b/readData.h @@ -44,6 +44,14 @@ #include "chromatData.h" +#ifdef __cplusplus +extern "C" { +#endif + ChromatData *readData( char *filename, int* status ); +#ifdef __cplusplus +} +#endif + #endif --- a/readESD.h +++ b/readESD.h @@ -53,6 +53,10 @@ #include "chromatData.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef unsigned int4 DWORD; typedef unsigned char TCHAR; typedef char BYTE; @@ -187,5 +191,7 @@ ChromatData *readESD(); #endif - +#ifdef __cplusplus +} +#endif --- a/readSCF.h +++ b/readSCF.h @@ -56,6 +56,10 @@ #include "chromatData.h" +#ifdef __cplusplus +extern "C" { +#endif + /* ---- Constants ---- */ #define SCF_MAGIC (((((int4)'.'<<8)+(int4)'s'<<8)+(int4)'c'<<8)+(int4)'f') #define scale(V,OLDMAX,NEWMAX) (int2)( (FLOAT) V * (FLOAT) NEWMAX / (FLOAT) OLDMAX ) @@ -144,4 +148,8 @@ int readSCF3(); #endif +#ifdef __cplusplus +} +#endif + #endif --- a/readsense_bitmaps.h +++ b/readsense_bitmaps.h @@ -56,10 +56,10 @@ static const int forward_bitmap_height = 19; static char forward_bitmap_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, - 0xf8, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0xff, 0x07, - 0xf8, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x07, 0xf8, 0xff, 0x1f, 0x00, - 0xf8, 0xff, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, (char)0xf8, 0x07, 0x00, 0x00, + (char)0xf8, (char)0xff, 0x00, 0x00, (char)0xf8, (char)0xff, 0x3f, 0x00, (char)0xf8, (char)0xff, (char)0xff, 0x07, + (char)0xf8, (char)0xff, (char)0xff, 0x0f, (char)0xf8, (char)0xff, (char)0xff, 0x07, (char)0xf8, (char)0xff, 0x1f, 0x00, + (char)0xf8, (char)0xff, 0x00, 0x00, (char)0xf8, 0x07, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; @@ -67,10 +67,10 @@ static const int reverse_bitmap_height = 19; static char reverse_bitmap_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf8, 0x07, - 0x00, 0xc0, 0xff, 0x07, 0x00, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07, - 0xfc, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x07, 0x00, 0xfe, 0xff, 0x07, - 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, (char)0xf8, 0x07, + 0x00, (char)0xc0, (char)0xff, 0x07, 0x00, (char)0xff, (char)0xff, 0x07, (char)0xf8, (char)0xff, (char)0xff, 0x07, + (char)0xfc, (char)0xff, (char)0xff, 0x07, (char)0xf8, (char)0xff, (char)0xff, 0x07, 0x00, (char)0xfe, (char)0xff, 0x07, + 0x00, (char)0xc0, (char)0xff, 0x07, 0x00, 0x00, (char)0xf8, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; --- a/readType.h +++ b/readType.h @@ -56,11 +56,19 @@ #include "chromatData.h" +#ifdef __cplusplus +extern "C" { +#endif + #ifdef ANSI_C int readType( char *filename ); #else int readType(); #endif +#ifdef __cplusplus +} +#endif + #endif --- a/rwtptrsortedvector.h +++ b/rwtptrsortedvector.h @@ -57,7 +57,6 @@ #ifdef USE_USING_IN_PUBLIC_TEMPLATE_CLASSES using RWTPtrOrderedVector::nCurrentLength_; using RWTPtrOrderedVector::isEmpty; - using RWTPtrOrderedVector::nCurrentLength_; using RWTPtrOrderedVector::length; using RWTPtrOrderedVector::ppArray_; using RWTPtrOrderedVector::data; @@ -84,7 +83,7 @@ if ( nInsertBeforeIndex == RW_NPOS ) nInsertBeforeIndex = nCurrentLength_; - insertAt( nInsertBeforeIndex, pVal ); + this->insertAt( nInsertBeforeIndex, pVal ); } // don't copy this. copy mbtValOrderedVectorOfRWCString's method instead --- a/rwtvalsortedvector.h +++ b/rwtvalsortedvector.h @@ -74,7 +74,7 @@ if ( nPos == RW_NPOS ) nPos = nCurrentLength_; - insertAt( nPos, val ); + this->insertAt( nPos, val ); } --- a/rwUtil.h +++ b/rwUtil.h @@ -51,6 +51,10 @@ *|***************************************************************************|* */ +#ifdef __cplusplus +extern "C" { +#endif + #ifdef ANSI_C int2 inSwpSint2( char *ptr ); int4 inSwpSint4( char *ptr ); @@ -97,3 +101,6 @@ int writeUint4(); #endif +#ifdef __cplusplus +} +#endif --- a/soGetDateTime.cpp +++ b/soGetDateTime.cpp @@ -62,13 +62,13 @@ else if ( nFormat == nDotInMiddle ) { strftime( szDateTime, nDateTimeSize, - "%y%m%d."quote(%H)quote(%M)quote(%S), + "%y%m%d." quote(%H)quote(%M)quote(%S), localtime( &timee ) ); } else { strftime( szDateTime, nDateTimeSize, - "%y%m%d:"quote(%H)quote(%M)quote(%S), + "%y%m%d:" quote(%H)quote(%M)quote(%S), localtime( &timee ) ); } --- a/szGetTime.h +++ b/szGetTime.h @@ -42,9 +42,15 @@ #ifndef szGetTime_included #define szGetTime_included -char *szGetTime(); +#ifdef __cplusplus +extern "C" { +#endif +char *szGetTime(); +#ifdef __cplusplus +} +#endif #endif