mercredi 25 février 2015

Including std::thread produces errors in ratio

This



//CSocket.h
#ifndef __SERVER_CSOCKET_H__
#define __SERVER_CSOCKET_H__

#include "winsock2.h"
#include "ws2tcpip.h"

#include <thread>
#include <stdio.h>
#include <string>


(cpp includes only the header)



//CSocket.cpp
#include "CSocket.h"


produces the following error messages:



1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(122): error C2065: 'INTMAX_MAX': nichtdeklarierter Bezeichner
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(133): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "std::ratio<_Nx,_Dx>".
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(124): error C2065: 'INTMAX_MAX': nichtdeklarierter Bezeichner
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(44): error C2065: 'INTMAX_MAX': nichtdeklarierter Bezeichner
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(217): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "std::_Safe_mult<0x01,0x01>".
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(36): error C2338: integer arithmetic overflow
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(44): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "std::_Safe_multX<0x01,0x01,false>".
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(44): error C2039: 'value': Ist kein Element von 'std::_Safe_multX<0x01,0x01,false>'
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(44): error C2065: 'value': nichtdeklarierter Bezeichner
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(44): error C2057: Konstanter Ausdruck erwartet
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(44): error C2039: 'value': Ist kein Element von 'std::_Safe_multX<0x01,0x0989680,false>'
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(219): error C2975: "_Nx": Ungültiges Vorlagenargument für "std::ratio", konstanter Kompilierzeitausdruck erwartet.
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(116): Siehe Deklaration von '_Nx'
1>c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(219): error C2975: "_Dx": Ungültiges Vorlagenargument für "std::ratio", konstanter Kompilierzeitausdruck erwartet.
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\ratio(117): Siehe Deklaration von '_Dx'
1> CSocket.cpp


Including std::thread in the .cpp and not in the header solves all errors but I don't know why it doesn't work in the header.


Aucun commentaire:

Enregistrer un commentaire