clean up warnings from msvc

This commit is contained in:
Tianqi Chen
2014-08-25 11:01:21 -07:00
parent 4f0b0d2c88
commit ca0b008fb0
20 changed files with 217 additions and 46 deletions

View File

@@ -40,7 +40,7 @@ class IStream {
*/
template<typename T>
inline void Write(const std::vector<T> &vec) {
uint64_t sz = vec.size();
uint64_t sz = static_cast<uint64_t>(vec.size());
this->Write(&sz, sizeof(sz));
if (sz != 0) {
this->Write(&vec[0], sizeof(T) * sz);
@@ -66,7 +66,7 @@ class IStream {
* \param str the string to be serialized
*/
inline void Write(const std::string &str) {
uint64_t sz = str.length();
uint64_t sz = static_cast<uint64_t>(str.length());
this->Write(&sz, sizeof(sz));
if (sz != 0) {
this->Write(&str[0], sizeof(char) * sz);

View File

@@ -9,7 +9,11 @@
#include <omp.h>
#else
#ifndef DISABLE_OPENMP
#ifndef _MSC_VER
#warning "OpenMP is not available, compile to single thread code"
#else
// TODO add warning for msvc
#endif
#endif
inline int omp_get_thread_num() { return 0; }
inline int omp_get_num_threads() { return 1; }

View File

@@ -88,11 +88,18 @@ inline void Shuffle(std::vector<T> &data) {
struct Random{
/*! \brief set random number seed */
inline void Seed(unsigned sd) {
this->rseed = sd;
this->rseed = sd;
#ifdef _MSC_VER
srand(rseed);
#endif
}
/*! \brief return a real number uniform in [0,1) */
inline double RandDouble(void) {
return static_cast<double>( rand_r( &rseed ) ) / (static_cast<double>( RAND_MAX )+1.0);
#ifndef _MSC_VER
return static_cast<double>(rand_r(&rseed)) / (static_cast<double>(RAND_MAX) + 1.0);
#else
return static_cast<double>(rand()) / (static_cast<double>(RAND_MAX) + 1.0);
#endif
}
// random number seed
unsigned rseed;

View File

@@ -6,8 +6,19 @@
* \author Tianqi Chen
*/
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstdarg>
#include <cstdlib>
#ifdef _MSC_VER
#define fopen64 fopen
// temporal solution for MSVC
inline int snprintf(char *ptr, size_t sz, const char *fmt, ...) {
va_list args;
va_start(args, fmt);
int ret = vsprintf(ptr, fmt, args);
va_end(args);
return ret;
}
#else
#ifdef _FILE_OFFSET_BITS
#if _FILE_OFFSET_BITS == 32
@@ -36,11 +47,6 @@ typedef long int64_t;
#include <inttypes.h>
#endif
#include <cstdio>
#include <cstdarg>
#include <cstdlib>
namespace xgboost {
/*! \brief namespace for helper utils of the project */
namespace utils {