Move StringComparator<string16>::operator() to header
Enabling /Zc:inline on static release build results in FAILED: E:\b\depot_tools\python276_bin\python.exe gyp-win-tool link-with-manifests environment.x64 True chrome.dll "E:\b\depot_tools\python276_bin\python.exe gyp-win-tool link-wrapper environment.x64 False link.exe /nologo /IMPLIB:chrome.dll.lib /DLL /OUT:chrome.dll @chrome.dll.rsp" 2 mt.exe rc.exe "obj\chrome\chrome_main_dll.chrome.dll.intermediate.manifest" obj\chrome\chrome_main_dll.chrome.dll.generated.manifest ..\..\chrome\app\chrome.dll.manifest browser_2.lib(browser_2.character_encoding.obj) : error LNK2019: unresolved external symbol "public: bool __cdecl l10n_util::StringComparator<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > >::operator()(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (??R?$StringComparator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@l10n_util@@QEAA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0@Z) referenced in function "void __cdecl std::_Adjust_heap<struct CharacterEncoding::EncodingInfo *,__int64,struct CharacterEncoding::EncodingInfo,class l10n_util::StringComparator<struct CharacterEncoding::EncodingInfo> >(struct CharacterEncoding::EncodingInfo *,__int64,__int64,struct CharacterEncoding::EncodingInfo &&,class l10n_util::StringComparator<struct CharacterEncoding::EncodingInfo>)" (??$_Adjust_heap@PEAUEncodingInfo@CharacterEncoding@@_JU12@V?$StringComparator@UEncodingInfo@CharacterEncoding@@@l10n_util@@@std@@YAXPEAUEncodingInfo@CharacterEncoding@@_J1$$QEAU12@V?$StringComparator@UEncodingInfo@CharacterEncoding@@@l10n_util@@@Z) browser_1.lib(browser_1.background_application_list_model.obj) : error LNK2001: unresolved external symbol "public: bool __cdecl l10n_util::StringComparator<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > >::operator()(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (??R?$StringComparator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@l10n_util@@QEAA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@0@Z) So, move StringComparator<base::string16>::operator() into header and mark it inline, so that it's available in all translation units where it's used. The previous code was correct, but this makes all compilers happy. /Zc:inline ref: http://msdn.microsoft.com/en-us/library/dn642448.aspx R=rnk@chromium.org TBR=jshin@chromium.org BUG=350018 Review URL: https://codereview.chromium.org/518533002 Cr-Commit-Position: refs/heads/master@{#292559}
Showing
Please register or sign in to comment