The following warnings occurred:
Warning [2] Undefined array key "lockoutexpiry" - Line: 94 - File: global.php PHP 8.1.27 (Linux)
File Line Function
/global.php 94 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "lockoutexpiry" - Line: 573 - File: global.php PHP 8.1.27 (Linux)
File Line Function
/global.php 573 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined variable $can_access_moderationqueue - Line: 752 - File: global.php PHP 8.1.27 (Linux)
File Line Function
/global.php 752 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "avatartype" - Line: 892 - File: global.php PHP 8.1.27 (Linux)
File Line Function
/global.php 892 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "avatartype" - Line: 892 - File: global.php PHP 8.1.27 (Linux)
File Line Function
/global.php 892 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined variable $awaitingusers - Line: 34 - File: global.php(959) : eval()'d code PHP 8.1.27 (Linux)
File Line Function
/global.php(959) : eval()'d code 34 errorHandler->error
/global.php 959 eval
/printthread.php 16 require_once
Warning [2] Undefined array key "style" - Line: 1024 - File: global.php PHP 8.1.27 (Linux)
File Line Function
/global.php 1024 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined property: MyLanguage::$lang_select_default - Line: 5308 - File: inc/functions.php PHP 8.1.27 (Linux)
File Line Function
/inc/functions.php 5308 errorHandler->error
/global.php 1024 build_theme_select
/printthread.php 16 require_once
Warning [2] Undefined array key 1 - Line: 1474 - File: inc/functions.php PHP 8.1.27 (Linux)
File Line Function
/inc/functions.php 1474 errorHandler->error
/inc/functions.php 1429 fetch_forum_permissions
/printthread.php 76 forum_permissions
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.27 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.27 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.27 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.27 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.27 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.27 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.27 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.27 (Linux)
File Line Function
/printthread.php 165 errorHandler->error



Forums
Compiling under VS 2012, string hash ? - Printable Version

+- Forums (https://www.vdrift.net/Forum)
+-- Forum: Community (https://www.vdrift.net/Forum/forumdisplay.php?fid=3)
+--- Forum: Help (https://www.vdrift.net/Forum/forumdisplay.php?fid=5)
+--- Thread: Compiling under VS 2012, string hash ? (/showthread.php?tid=1725)



Compiling under VS 2012, string hash ? - CrystalH - 05-26-2013

Hi. I'm trying to build under Visual Studio 2012.
So far it was ok, but I hit 2 errors, beyond my knowledge how to fix it.

Code:
1>c:\w\vs2012\vc\include\xstddef(238): error C2338: The C++ Standard doesn't provide a hash for this type.
1>          c:\w\vs2012\vc\include\type_traits(743) : see reference to class template instantiation 'std::hash<_Kty>' being compiled
1>          with
1>          [
1>              _Kty=StringId
1>          ]
1>          c:\w\vs2012\vc\include\xhash(224) : see reference to class template instantiation 'std::is_empty<_Ty>' being compiled
1>          with
1>          [
1>              _Ty=std::hash<StringId>
1>          ]
1>          c:\w\vs2012\vc\include\unordered_map(22) : see reference to class template instantiation 'std::_Uhash_compare<_Kty,_Hasher,_Keyeq>' being compiled
1>          with
1>          [
1>              _Kty=StringId,
1>              _Hasher=std::hash<StringId>,
1>              _Keyeq=std::equal_to<StringId>
1>          ]
1>          c:\w\vs2012\vc\include\xhash(261) : see reference to class template instantiation 'std::_Umap_traits<_Kty,_Ty,_Tr,_Alloc,_Mfl>' being compiled
1>          with
1>          [
1>              _Kty=StringId,
1>              _Ty=RenderTextureEntry,
1>              _Tr=std::_Uhash_compare<StringId,std::hash<StringId>,std::equal_to<StringId>>,
1>              _Alloc=std::allocator<std::pair<const StringId,RenderTextureEntry>>,
1>              _Mfl=false
1>          ]
1>          c:\w\vs2012\vc\include\unordered_map(80) : see reference to class template instantiation 'std::_Hash<_Traits>' being compiled
1>          with
1>          [
1>              _Traits=std::_Umap_traits<StringId,RenderTextureEntry,std::_Uhash_compare<StringId,std::hash<StringId>,std::equal_to<StringId>>,std::allocator<std::pair<const StringId,RenderTextureEntry>>,false>
1>          ]
1>          c:\w\_pro\vdr\vdrift\src\graphics\gl3v\renderpass.cpp(141) : see reference to class template instantiation 'std::unordered_map<_Kty,_Ty>' being compiled
1>          with
1>          [
1>              _Kty=StringId,
1>              _Ty=RenderTextureEntry
1>          ]

and the second

Code:
1>c:\w\vs2012\vc\include\xstddef(238): error C2338: The C++ Standard doesn't provide a hash for this type.
1>          c:\w\vs2012\vc\include\type_traits(743) : see reference to class template instantiation 'std::hash<_Kty>' being compiled
1>          with
1>          [
1>              _Kty=StringId
1>          ]
1>          c:\w\vs2012\vc\include\xhash(224) : see reference to class template instantiation 'std::is_empty<_Ty>' being compiled
1>          with
1>          [
1>              _Ty=std::hash<StringId>
1>          ]
1>          c:\w\vs2012\vc\include\unordered_map(22) : see reference to class template instantiation 'std::_Uhash_compare<_Kty,_Hasher,_Keyeq>' being compiled
1>          with
1>          [
1>              _Kty=StringId,
1>              _Hasher=std::hash<StringId>,
1>              _Keyeq=std::equal_to<StringId>
1>          ]
1>          c:\w\vs2012\vc\include\xhash(261) : see reference to class template instantiation 'std::_Umap_traits<_Kty,_Ty,_Tr,_Alloc,_Mfl>' being compiled
1>          with
1>          [
1>              _Kty=StringId,
1>              _Ty=std::vector<GLuint>,
1>              _Tr=std::_Uhash_compare<StringId,std::hash<StringId>,std::equal_to<StringId>>,
1>              _Alloc=std::allocator<std::pair<const StringId,std::vector<GLuint>>>,
1>              _Mfl=false
1>          ]
1>          c:\w\vs2012\vc\include\unordered_map(80) : see reference to class template instantiation 'std::_Hash<_Traits>' being compiled
1>          with
1>          [
1>              _Traits=std::_Umap_traits<StringId,std::vector<GLuint>,std::_Uhash_compare<StringId,std::hash<StringId>,std::equal_to<StringId>>,std::allocator<std::pair<const StringId,std::vector<GLuint>>>,false>
1>          ]
1>          c:\w\_pro\vdr\vdrift\src\graphics\gl3v\renderer.cpp(175) : see reference to class template instantiation 'std::unordered_map<_Kty,_Ty>' being compiled
1>          with
1>          [
1>              _Kty=StringId,
1>              _Ty=std::vector<GLuint>
1>          ]

So it's same thing just in 2 files:
src\graphics\gl3v\renderpass.cpp(141)
src\graphics\gl3v\renderer.cpp(175)

I only found this:
http://stackoverflow.com/questions/15595804/c-hash-function-for-string-in-unordered-map
Don't know if it helps.


RE: Compiling under VS 2012, string hash ? - NaN - 05-26-2013

Change std::tr1::unordered_map <StringId, RenderTextureEntry> to std::tr1::unordered_map <StringId, RenderTextureEntry, StringId::hash>


RE: Compiling under VS 2012, string hash ? - CrystalH - 05-26-2013

Thanks, works now.
Was in several places, maybe a typedef for iterator would be shorter.
Anyway here is the patch:
http://pastebin.com/Wja07VZk


RE: Compiling under VS 2012, string hash ? - NaN - 05-27-2013

Yeah, that are some lengthy constructs. I've added a few typedefs to clean it up a bit. Thanks.