<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-36177874</id><updated>2009-02-21T12:38:22.877+05:30</updated><title type='text'>C++ Karma</title><subtitle type='html'>This blog chronicles my experiences while using C++ at work or as a hobbyist. It contains plenty of real C++ code that will run unchanged on a compliant compiler. This blog is meant to be a source of (at least some) useful code examples which people can freely use and distribute.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cxxkarma.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default'/><link rel='alternate' type='text/html' href='http://cxxkarma.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Arindam Mukherjee</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36177874.post-3845855555801389767</id><published>2007-07-16T20:30:00.000+05:30</published><updated>2007-07-16T21:30:25.084+05:30</updated><title type='text'>Building Boost with MS Platform SDK AMD64 Cross-compiler</title><content type='html'>This post has been pretty hastily put together. I intend to change this over time and document how I built Boost libraries from source using the Microsoft Platform SDK 2003, for the x64 platform (AMD64 / EM64T).&lt;br /&gt;&lt;br /&gt;1. Boost 1.31 - had to choose this rather older release because of certain constraints that our product has.&lt;br /&gt;&lt;br /&gt;2. Microsoft Platform SDK 2003 R1. (Installed at "C:\Program Files\Microsoft Platform SDK") - no Visual Studio installation exists.&lt;br /&gt;&lt;br /&gt;3. Using Boost.Build V1 rather than 2. Here is a mssdk-amd64-tools.jam file I created using the msvc-tools.jam at the following location under the Boost source dir:&lt;br /&gt;&lt;br /&gt;boost_1_31_0\tools\build\v1&lt;br /&gt;&lt;br /&gt;--- begin file&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# Microsoft Platform SDK&lt;br /&gt;&lt;br&gt;&lt;br /&gt;# (C) Copyright David Abrahams 2001. Permission to copy, use,&lt;br /&gt;# modify, sell and distribute this software is granted provided this&lt;br /&gt;# copyright notice appears in all copies. This software is provided&lt;br /&gt;# "as is" without express or implied warranty, and with no claim as&lt;br /&gt;# to its suitability for any purpose.&lt;br /&gt;&lt;br /&gt;# The following #// line will be used by the regression test table generation&lt;br /&gt;# program as the column heading for HTML tables. Must not include version number.&lt;br /&gt;#//&lt;a href="http://msdn.microsoft.com/vstudio/default.asp"&gt;Micro-&lt;br&gt;soft&lt;br&gt;VC++&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;# singleton variables...&lt;br /&gt;set-as-singleton TARGETOS APPVER MSSdk VISUALC MSSDK_ROOT VC_TOOL_PATH VC_SETUP ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;# Get these variable set on the targets so that we can re-use the&lt;br /&gt;# build actions for other toolsets using this one as a base.&lt;br /&gt;flags mssdk VC_TOOL_PATH ;&lt;br /&gt;flags mssdk VC_SETUP ;&lt;br /&gt;flags mssdk VC_COMPILER ;&lt;br /&gt;flags mssdk VC_LINKER ;&lt;br /&gt;flags mssdk VC_PDB_NAME ;&lt;br /&gt;&lt;br&gt;  &lt;br /&gt;# compute MSVC tool path&lt;br /&gt;# You can either put the msvc bin directory in your PATH, or you can set&lt;br /&gt;# MSVCDir to point at the msvc installation directory&lt;br /&gt;&lt;br&gt;&lt;br /&gt;# Some installations set MSSDK instead of MSSdk; who knows why?&lt;br /&gt;MSSdk ?= $(MSSDK) ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;# If TARGETOS is not set the user hasn't run VCVARS32.BAT&lt;br /&gt;if ! $(TARGETOS)&lt;br /&gt;{&lt;br /&gt;    # In case someone set VISUALC in order to build Jam, we can just use that.&lt;br /&gt;    # MSSDK_ROOT ?= $(VISUALC) ;&lt;br /&gt;    # Otherwise, guess a standard installation directory&lt;br /&gt;&lt;br&gt;&lt;br /&gt;    ProgramFiles ?= $(PROGRAMFILES) ;&lt;br /&gt;    MSSDK_ROOT ?= $(ProgramFiles:J=" ")"\\Microsoft Platform SDK" ;&lt;br /&gt;&lt;br&gt;    &lt;br /&gt;    # Reconstitutes paths containing spaces&lt;br /&gt;    MSSDK_ROOT = $(MSSDK_ROOT:J=" ") ;&lt;br /&gt;&lt;br&gt;    &lt;br /&gt;    # The tools are provisionallly located in the msvc6 bin&lt;br /&gt;    # directory. This may be overridden by toolsets which extend this&lt;br /&gt;    # one.&lt;br /&gt;    VC_TOOL_PATH = "$(MSSDK_ROOT)"$(SLASH)bin$(SLASH)win64$(SLASH)x86$(SLASH)AMD64$(SLASH) ;&lt;br /&gt; &lt;br&gt;   &lt;br /&gt;    # Always call VCVARS32.BAT before invoking the tools&lt;br /&gt;    VC_SETUP = "CALL \"$(VC_TOOL_PATH)..$(SLASH)..$(SLASH)..$(SLASH)..$(SLASH)SetEnv.Cmd\" /X64 &gt;nul" ;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;    # Reconstitutes paths containing spaces&lt;br /&gt;    MSSdk = $(MSSdk:J=" ") ;&lt;br /&gt; &lt;br&gt;   &lt;br /&gt;    # Don't clobber adjoining text or use explicit paths if MSVCDir is already set&lt;br /&gt;    VC_TOOL_PATH = "" ; &lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;VC_COMPILER = cl.exe ;&lt;br /&gt;VC_LINKER = link.exe ;&lt;br /&gt;VC_PDB_NAME = vc60 ;&lt;br /&gt;VC_STDLIB_PATH = ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;flags mssdk CFLAGS &lt;debug-symbols&gt;on/&lt;debug-store&gt;object : /Z7 ;&lt;br /&gt;flags mssdk CFLAGS &lt;debug-symbols&gt;on/&lt;debug-store&gt;database : /Zi ;&lt;br /&gt;flags mssdk PDB_CFLAG &lt;debug-symbols&gt;on/&lt;debug-store&gt;database : /Fd ;&lt;br /&gt;flags mssdk PDB_LINKFLAG &lt;debug-symbols&gt;on/&lt;debug-store&gt;database : /PDB: ;&lt;br /&gt;flags mssdk LINKFLAGS &lt;debug-symbols&gt;on : /DEBUG ;&lt;br /&gt;# The linker disables the default optimizations when using /DEBUG. Whe have&lt;br /&gt;# to enable them manually for release builds with debug symbols.&lt;br /&gt;# flags msvc LINKFLAGS &lt;debug-symbols&gt;on/&lt;runtime-build&gt;release : /OPT:REF,ICF ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;flags mssdk CFLAGS &lt;optimization&gt;speed : /O2 /Gs ;&lt;br /&gt;flags mssdk CFLAGS &lt;optimization&gt;off : /Od ;&lt;br /&gt;flags mssdk CFLAGS &lt;optimization&gt;space : /O1 /Gs ;&lt;br /&gt;flags mssdk CFLAGS &lt;inlining&gt;off : /Ob0 ;&lt;br /&gt;flags mssdk CFLAGS &lt;inlining&gt;on : /Ob1 ;&lt;br /&gt;flags mssdk CFLAGS &lt;inlining&gt;full : /Ob2 ;&lt;br /&gt;flags mssdk CFLAGS &lt;exception-handling&gt;on : /EHsc ;&lt;br /&gt;flags mssdk CFLAGS &lt;rtti&gt;on : /GR ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;# Note that these two options actually imply multithreading support on MSVC&lt;br /&gt;# because there is no single-threaded dynamic runtime library. Specifying&lt;br /&gt;# &lt;threading&gt;multi would be a bad idea, though, because no option would be&lt;br /&gt;# matched when the build uses the default settings of &lt;runtime-link&gt;dynamic&lt;br /&gt;# and &lt;threading&gt;single.&lt;br /&gt;flags mssdk CFLAGS &lt;runtime-build&gt;release/&lt;runtime-link&gt;dynamic : /MD ;&lt;br /&gt;flags mssdk CFLAGS &lt;runtime-build&gt;debug/&lt;runtime-link&gt;dynamic : /MDd ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;# flags mssdk CFLAGS &lt;runtime-build&gt;release/&lt;runtime-link&gt;static/&lt;threading&gt;single : /ML ;&lt;br /&gt;# flags mssdk CFLAGS &lt;runtime-build&gt;debug/&lt;runtime-link&gt;static/&lt;threading&gt;single : /MLd ;&lt;br /&gt;flags mssdk CFLAGS &lt;runtime-build&gt;release/&lt;runtime-link&gt;static/&lt;threading&gt;multi : /MT ;&lt;br /&gt;flags mssdk CFLAGS &lt;runtime-build&gt;debug/&lt;runtime-link&gt;static/&lt;threading&gt;multi : /MTd ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;flags mssdk CFLAGS &lt;cflags&gt; ;&lt;br /&gt;# flags mssdk CFLAGS /O2 ;&lt;br /&gt;flags mssdk C++FLAGS &lt;cxxflags&gt; ;&lt;br /&gt;flags mssdk C++FLAGS : /Zc:forScope ;&lt;br /&gt;feature native-wchar_t : on off ;&lt;br /&gt;flags mssdk C++FLAGS &lt;native-wchar_t&gt;on : /Zc:wchar_t ;&lt;br /&gt;flags mssdk DEFINES &lt;define&gt; ;&lt;br /&gt;flags mssdk UNDEFS &lt;undef&gt; ;&lt;br /&gt;flags mssdk HDRS &lt;include&gt; ;&lt;br /&gt;flags mssdk CRTSTDHDRS &lt;crtinclude&gt; ;&lt;br /&gt;flags mssdk STDHDRS &lt;sysinclude&gt; ;&lt;br /&gt;flags mssdk LINKFLAGS &lt;linkflags&gt; ;&lt;br /&gt;flags mssdk ARFLAGS &lt;arflags&gt; ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;flags mssdk STDHDRS : $(MSSdk)$(SLASH)include ;&lt;br /&gt;flags mssdk CRTSTDHDRS : $(MSSdk)$(SLASH)include$(SLASH)crt ;&lt;br /&gt;flags mssdk STDLIBPATH : $(MSSdk)$(SLASH)lib$(SLASH)AMD64 ;&lt;br /&gt;flags mssdk LIBPATH &lt;library-path&gt; ;&lt;br /&gt;flags mssdk NEEDLIBS &lt;library-file&gt; ;&lt;br /&gt;flags mssdk FINDLIBS &lt;find-library&gt; ;&lt;br /&gt;flags mssdk LINKFLAGS &lt;target-type&gt;$(SHARED_TYPES) : /DLL ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;flags mssdk LINKFLAGS &lt;user-interface&gt;console : /subsystem:console ;&lt;br /&gt;flags mssdk LINKFLAGS &lt;user-interface&gt;gui : /subsystem:windows ;&lt;br /&gt;flags mssdk LINKFLAGS &lt;user-interface&gt;wince : /subsystem:windowsce ;&lt;br /&gt;flags mssdk LINKFLAGS &lt;user-interface&gt;native : /subsystem:native ;&lt;br /&gt;flags mssdk LINKFLAGS &lt;user-interface&gt;auto : /subsystem:posix ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;flags mssdk LINKFLAGS &lt;target-arch&gt;x64 : /machine:AMD64 ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;flags mssdk LINKLIBS kernel32.lib user32.lib gdi32.lib ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;rule vc-set-pdb-file ( targets + : name )&lt;br /&gt;{&lt;br /&gt;    local pdb = $(targets[1]:B=$(name):S=.pdb) ;&lt;br /&gt;    VC_PDB_FILE on $(targets) = $(pdb:G=:R=$(LOCATE_TARGET)) ;&lt;br /&gt;    LOCATE on $(pdb) = $(LOCATE_TARGET) ;&lt;br /&gt;    Clean clean : $(pdb) ;&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;#### Link ####&lt;br /&gt;&lt;br&gt;&lt;br /&gt;rule Link-action ( target implib ? : sources + : target-type ? )&lt;br /&gt;{&lt;br /&gt;    with-command-file vc-Link $(&lt;) : $(sources) $(NEEDLIBS) ;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;    gRUN_PATH($(&lt;)) += $(VC_STDLIB_PATH) ;&lt;br /&gt;    if $(implib)&lt;br /&gt;    {&lt;br /&gt;        # incremental linking a DLL causes no end of problems: if the&lt;br /&gt;        # actual exports don't change, the import .lib file is never&lt;br /&gt;        # updated. Therefore, the .lib is always out-of-date and gets&lt;br /&gt;        # rebuilt every time. I'm not sure that incremental linking is&lt;br /&gt;        # such a great idea in general, but in this case I'm sure we&lt;br /&gt;        # don't want it.&lt;br /&gt;        NOINCREMENTAL on $(&lt;) = /INCREMENTAL:NO ;&lt;br /&gt;    }&lt;br /&gt;    vc-set-pdb-file $(&lt;) : $(target:B) ;&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;actions together vc-Link&lt;br /&gt;{&lt;br /&gt;    $(VC_SETUP)&lt;br /&gt;    "$(VC_TOOL_PATH)$(VC_LINKER)" /nologo $(NOINCREMENTAL) $(LINKFLAGS) $(PDB_LINKFLAG)"$(VC_PDB_FILE)" /out:"$(&lt;[1])" /IMPLIB:"$(&lt;[2])" /LIBPATH:"$(LIBPATH)" /LIBPATH:"$(STDLIBPATH)" bufferoverflowU.lib $(LINKLIBS) "$(FINDLIBS:S=.lib)" @"$(&gt;)"&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;#### Cc #####&lt;br /&gt;&lt;br&gt;&lt;br /&gt;rule Cc-action&lt;br /&gt;{&lt;br /&gt;    vc-set-pdb-file $(&lt;) : $(VC_PDB_NAME) ;&lt;br /&gt;    vc-Cc $(&lt;) : $(&gt;) ;&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;actions vc-Cc&lt;br /&gt;{&lt;br /&gt;    $(VC_SETUP)&lt;br /&gt;    "$(VC_TOOL_PATH)$(VC_COMPILER)" /Zm800 -nologo -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(CRTSTDHDRS)" -I"$(STDHDRS)" $(PDB_CFLAG)"$(VC_PDB_FILE)" -Fo"$(&lt;)" "$(&gt;)"&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;#### C++ ####&lt;br /&gt;rule C++-action&lt;br /&gt;{&lt;br /&gt;    vc-set-pdb-file $(&lt;) : $(VC_PDB_NAME) ;&lt;br /&gt;    vc-C++ $(&lt;) : $(&gt;) ;&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;actions vc-C++&lt;br /&gt;{&lt;br /&gt;    $(VC_SETUP)&lt;br /&gt;    "$(VC_TOOL_PATH)$(VC_COMPILER)" /Zm800 -nologo /EHsc -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(CRTSTDHDRS)" -I"$(STDHDRS)" $(PDB_CFLAG)"$(VC_PDB_FILE)" -Fo"$(&lt;)" -Tp"$(&gt;)"&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;#### Archive ####&lt;br /&gt;rule Archive-action&lt;br /&gt;{&lt;br /&gt;    vc-set-pdb-file $(&lt;) : $(&lt;:B) ;&lt;br /&gt;    with-command-file vc-Archive $(&lt;) : $(&gt;) ;&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;actions vc-Archive&lt;br /&gt;{&lt;br /&gt;    $(VC_SETUP)&lt;br /&gt;    if exist "$(&lt;)" DEL "$(&lt;)"&lt;br /&gt;    "$(VC_TOOL_PATH)$(VC_LINKER)" /lib $(ARFLAGS) $(PDB_LINKFLAG)"$(VC_PDB_FILE)" /out:"$(&lt;)" @"$(&gt;)" /machine:AMD64&lt;br /&gt;}&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;--- end file&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;4. Everything seems to build fine except Boost.Regex. This fails while linking - apparently it cannot find a large number of template specializations of standard library classes for wchar_t.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;The errors are shown below. &lt;br /&gt;&lt;br&gt;&lt;br /&gt;- Any idea why these symbols are not available.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;- Is there a way I can turn off building Unicode support for Boost.Regex - can undef-ing BOOST_NO_WREGEX be of any help or should it be done with some other preprocessor symbol.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Errors:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;vc-C++ bin\boost\libs\regex\build\boost_regex.dll\mssdk-amd64\debug\winstances.obj&lt;br /&gt;winstances.cpp&lt;br /&gt;Unknown compiler version - please run the configure tests and report the results&lt;br /&gt;vc-Link bin\boost\libs\regex\build\boost_regex.dll\mssdk-amd64\debug\boost_regex-mssdk-gd-1_31.dll bin\boost\libs\regex\build\boost_regex.dll\mssdk-amd64\debug\boost_regex-mssdk-gd-1_31.lib&lt;br /&gt;   Creating library bin\boost\libs\regex\build\boost_regex.dll\mssdk-amd64\debug\boost_regex-mssdk-gd-1_31.lib and object bin\boost\libs\regex\build\boost_regex.dll\mssdk-amd64\debug\boost_regex-mssdk-gd-1_31.exp&lt;br /&gt;wide_posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;instances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;regex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;regex_debug.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z) referenced in function "void __cdecl regex_lib_print_compiler_macros(void)" (?regex_lib_print_compiler_macros@@YAXXZ)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;c_regex_traits_common.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;cregex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t)const " (__imp_?tolower@?$ctype@_W@std@@QEBA_W_W@Z)&lt;br /&gt;wide_posix_api.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ) referenced in function "public: static wchar_t __cdecl boost::w32_regex_traits&lt;wchar_t&gt;::translate(wchar_t,bool)" (?translate@?$w32_regex_traits@_W@boost@@SA_W_W_N@Z)&lt;br /&gt;instances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;regex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;regex_debug.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;c_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;c_regex_traits_common.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;cregex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::~basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@XZ)&lt;br /&gt;wide_posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;instances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;regex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;regex_debug.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z) referenced in function "void __cdecl regex_lib_print_compiler_macros(void)" (?regex_lib_print_compiler_macros@@YAXXZ)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;c_regex_traits_common.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;cregex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@AEBV01@@Z)&lt;br /&gt;wide_posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;instances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;regex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;regex_debug.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z) referenced in function "void __cdecl regex_lib_print_compiler_macros(void)" (?regex_lib_print_compiler_macros@@YAXXZ)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;c_regex_traits_common.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;cregex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::transform(wchar_t const *,wchar_t const *)const " (__imp_?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;wide_posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;instances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;regex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;regex_debug.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ) referenced in function "void __cdecl regex_lib_print_compiler_macros(void)" (?regex_lib_print_compiler_macros@@YAXXZ)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;c_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;c_regex_traits_common.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;cregex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned __int64 __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::size(void)const " (__imp_?size@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KXZ)&lt;br /&gt;wide_posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;instances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;regex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;regex_debug.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ) referenced in function "void __cdecl regex_lib_print_compiler_macros(void)" (?regex_lib_print_compiler_macros@@YAXXZ)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;c_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;c_regex_traits_common.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;cregex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::c_str(void)const " (__imp_?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ)&lt;br /&gt;wide_posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;instances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;regex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;regex_debug.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z) referenced in function "void __cdecl regex_lib_print_compiler_macros(void)" (?regex_lib_print_compiler_macros@@YAXXZ)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;c_regex_traits_common.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;cregex.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl std::ctype&lt;wchar_t&gt;::is(short,wchar_t)const " (__imp_?is@?$ctype@_W@std@@QEBA_NF_W@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::append(unsigned __int64,wchar_t)" (__imp_?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z) referenced in function "public: static bool __cdecl boost::c_regex_traits&lt;wchar_t&gt;::lookup_collatename(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp;,wchar_t const *,wchar_t const *)" (?lookup_collatename@?$c_regex_traits@_W@boost@@SA_NAEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PEB_W1@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::append(unsigned __int64,wchar_t)" (__imp_?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::append(unsigned __int64,wchar_t)" (__imp_?append@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K_W@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(wchar_t const *)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z) referenced in function "public: static bool __cdecl boost::c_regex_traits&lt;wchar_t&gt;::lookup_collatename(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp;,wchar_t const *,wchar_t const *)" (?lookup_collatename@?$c_regex_traits@_W@boost@@SA_NAEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PEB_W1@Z)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(wchar_t const *)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@PEB_W@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(wchar_t const *,wchar_t const *,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0AEBV?$allocator@_W@1@@Z) referenced in function "public: static bool __cdecl boost::c_regex_traits&lt;wchar_t&gt;::lookup_collatename(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp;,wchar_t const *,wchar_t const *)" (?lookup_collatename@?$c_regex_traits@_W@boost@@SA_NAEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PEB_W1@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(wchar_t const *,wchar_t const *,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0AEBV?$allocator@_W@1@@Z)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(wchar_t const *,wchar_t const *,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0AEBV?$allocator@_W@1@@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(wchar_t const *,wchar_t const *,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0AEBV?$allocator@_W@1@@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z) referenced in function "public: static void __cdecl boost::c_regex_traits&lt;wchar_t&gt;::update(void)" (?update@?$c_regex_traits@_W@boost@@SAXXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z)&lt;br /&gt;wide_posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$allocator@_W@1@@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: wchar_t &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator[](unsigned __int64)" (__imp_??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z) referenced in function "public: static void __cdecl boost::c_regex_traits&lt;wchar_t&gt;::transform_primary(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (?transform_primary@?$c_regex_traits@_W@boost@@SAXAEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEBV34@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator[](unsigned __int64)" (__imp_??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator[](unsigned __int64)" (__imp_??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator[](unsigned __int64)" (__imp_??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::erase(unsigned __int64,unsigned __int64)" (__imp_?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z) referenced in function "public: static void __cdecl boost::c_regex_traits&lt;wchar_t&gt;::transform_primary(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (?transform_primary@?$c_regex_traits@_W@boost@@SAXAEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEBV34@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::erase(unsigned __int64,unsigned __int64)" (__imp_?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::erase(unsigned __int64,unsigned __int64)" (__imp_?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV12@_K0@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned __int64 const std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::npos" (__imp_?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static unsigned __int64 const std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::npos" (__imp_?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB) referenced in function "public: int __cdecl boost::cpp_regex_traits&lt;wchar_t&gt;::toi(wchar_t)const " (?toi@?$cpp_regex_traits@_W@boost@@QEBAH_W@Z)&lt;br /&gt;w32_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned __int64 const std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::npos" (__imp_?npos@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@2_KB)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) bool __cdecl std::operator==&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z) referenced in function "unsigned int __cdecl boost::re_detail::find_sort_syntax&lt;class boost::c_regex_traits&lt;wchar_t&gt;,wchar_t&gt;(class boost::c_regex_traits&lt;wchar_t&gt; const *,wchar_t *)" (??$find_sort_syntax@V?$c_regex_traits@_W@boost@@_W@re_detail@boost@@YAIPEBV?$c_regex_traits@_W@1@PEA_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) bool __cdecl std::operator==&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) bool __cdecl std::operator==&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??$?8_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(unsigned __int64,wchar_t,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z) referenced in function "unsigned int __cdecl boost::re_detail::find_sort_syntax&lt;class boost::c_regex_traits&lt;wchar_t&gt;,wchar_t&gt;(class boost::c_regex_traits&lt;wchar_t&gt; const *,wchar_t *)" (??$find_sort_syntax@V?$c_regex_traits@_W@boost@@_W@re_detail@boost@@YAIPEBV?$c_regex_traits@_W@1@PEA_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(unsigned __int64,wchar_t,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z)&lt;br /&gt;wide_posix_api.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(unsigned __int64,wchar_t,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(unsigned __int64,wchar_t,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@_K_WAEBV?$allocator@_W@1@@Z)&lt;br /&gt;c_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: wchar_t const &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator[](unsigned __int64)const " (__imp_??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z) referenced in function "unsigned int __cdecl boost::re_detail::count_chars&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;,wchar_t&gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,wchar_t)" (??$count_chars@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@_W@re_detail@boost@@YAIAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t const &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator[](unsigned __int64)const " (__imp_??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl std::codecvt&lt;wchar_t,char,int&gt;::out(int &amp;,wchar_t const *,wchar_t const *,wchar_t const * &amp;,char *,char *,char * &amp;)const " (__imp_?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z) referenced in function "class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; __cdecl boost::re_detail::to_narrow(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::codecvt&lt;wchar_t,char,int&gt; const &amp;)" (?to_narrow@re_detail@boost@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@4@AEBV?$codecvt@_WDH@4@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z) referenced in function "class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl boost::re_detail::to_wide(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;,class std::codecvt&lt;wchar_t,char,int&gt; const &amp;)" (?to_wide@re_detail@boost@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@AEBV?$codecvt@_WDH@4@@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV01@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl std::codecvt&lt;wchar_t,char,int&gt;::in(int &amp;,char const *,char const *,char const * &amp;,wchar_t *,wchar_t *,wchar_t * &amp;)const " (__imp_?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z) referenced in function "class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl boost::re_detail::to_wide(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;,class std::codecvt&lt;wchar_t,char,int&gt; const &amp;)" (?to_wide@re_detail@boost@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@AEBV?$codecvt@_WDH@4@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl std::basic_istream&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::`vbase destructor'(void)" (__imp_??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ) referenced in function "int `public: __cdecl boost::re_detail::message_data&lt;wchar_t&gt;::message_data&lt;wchar_t&gt;(class std::locale const &amp;,class locale::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;)'::`1'::dtor$5" (?dtor$5@?0???0?$message_data@_W@re_detail@boost@@QEAA@AEBVlocale@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z@4HA)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl std::messages&lt;wchar_t&gt;::close(int)const " (__imp_?close@?$messages@_W@std@@QEBAXH@Z) referenced in function "public: __cdecl boost::re_detail::message_data&lt;wchar_t&gt;::message_data&lt;wchar_t&gt;(class std::locale const &amp;,class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;)" (??0?$message_data@_W@re_detail@boost@@QEAA@AEBVlocale@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::messages&lt;wchar_t&gt;::get(int,int,int,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)const " (__imp_?get@?$messages@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@HHHAEBV32@@Z) referenced in function "public: __cdecl boost::re_detail::message_data&lt;wchar_t&gt;::message_data&lt;wchar_t&gt;(class std::locale const &amp;,class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;)" (??0?$message_data@_W@re_detail@boost@@QEAA@AEBVlocale@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl std::messages&lt;wchar_t&gt;::open(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;,class std::locale const &amp;)const " (__imp_?open@?$messages@_W@std@@QEBAHAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@AEBVlocale@2@@Z) referenced in function "public: __cdecl boost::re_detail::message_data&lt;wchar_t&gt;::message_data&lt;wchar_t&gt;(class std::locale const &amp;,class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;)" (??0?$message_data@_W@re_detail@boost@@QEAA@AEBVlocale@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::locale __cdecl std::basic_ios&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::imbue(class std::locale const &amp;)" (__imp_?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z) referenced in function "public: __cdecl boost::re_detail::message_data&lt;wchar_t&gt;::message_data&lt;wchar_t&gt;(class std::locale const &amp;,class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;)" (??0?$message_data@_W@re_detail@boost@@QEAA@AEBVlocale@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_istream&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::basic_istream&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;(class std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt; *,bool)" (__imp_??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z) referenced in function "public: __cdecl boost::re_detail::message_data&lt;wchar_t&gt;::message_data&lt;wchar_t&gt;(class std::locale const &amp;,class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;)" (??0?$message_data@_W@re_detail@boost@@QEAA@AEBVlocale@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::~basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;(void)" (__imp_??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ) referenced in function "public: virtual __cdecl `anonymous namespace'::parser_buf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::~parser_buf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;(void)" (??1?$parser_buf@_WU?$char_traits@_W@std@@@?A0x35f75ea7@@UEAA@XZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_istream&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_istream&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::operator&gt;&gt;(int &amp;)" (__imp_??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z) referenced in function "public: int __cdecl boost::cpp_regex_traits&lt;wchar_t&gt;::toi(wchar_t)const " (?toi@?$cpp_regex_traits@_W@boost@@QEBAH_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_istream&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_istream&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::operator&gt;&gt;(class std::ios_base &amp; (__cdecl*)(class std::ios_base &amp;))" (__imp_??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z) referenced in function "public: int __cdecl boost::cpp_regex_traits&lt;wchar_t&gt;::toi(wchar_t)const " (?toi@?$cpp_regex_traits@_W@boost@@QEBAH_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl std::basic_ios&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::clear(int,bool)" (__imp_?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z) referenced in function "public: int __cdecl boost::cpp_regex_traits&lt;wchar_t&gt;::toi(wchar_t)const " (?toi@?$cpp_regex_traits@_W@boost@@QEBAH_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt; * __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::pubsetbuf(wchar_t *,__int64)" (__imp_?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z) referenced in function "public: int __cdecl boost::cpp_regex_traits&lt;wchar_t&gt;::toi(wchar_t)const " (?toi@?$cpp_regex_traits@_W@boost@@QEBAH_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __int64 __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::in_avail(void)" (__imp_?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ) referenced in function "public: int __cdecl boost::cpp_regex_traits&lt;wchar_t&gt;::toi(wchar_t const * &amp;,wchar_t const *,int)const " (?toi@?$cpp_regex_traits@_W@boost@@QEBAHAEAPEB_WPEB_WH@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: wchar_t const * __cdecl std::ctype&lt;wchar_t&gt;::tolower(wchar_t *,wchar_t const *)const " (__imp_?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z) referenced in function "public: __cdecl boost::cpp_regex_traits&lt;wchar_t&gt;::cpp_regex_traits&lt;wchar_t&gt;(void)" (??0?$cpp_regex_traits@_W@boost@@QEAA@XZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::imbue(class std::locale const &amp;)" (?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::sync(void)" (?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual __int64 __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::xsputn(wchar_t const *,__int64)" (?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual __int64 __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::xsgetn(wchar_t *,__int64)" (?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual unsigned short __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::uflow(void)" (?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual unsigned short __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::underflow(void)" (?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::showmanyc(void)" (?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual unsigned short __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::pbackfail(unsigned short)" (?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual unsigned short __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::overflow(unsigned short)" (?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;(void)" (__imp_??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ) referenced in function "public: __cdecl `anonymous namespace'::parser_buf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::parser_buf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;(void)" (??0?$parser_buf@_WU?$char_traits@_W@std@@@?A0x35f75ea7@@QEAA@XZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) bool __cdecl std::operator&lt;&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z) referenced in function "public: bool __cdecl std::less&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &gt;::operator()(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)const " (??R?$less@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@QEBA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@0@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) bool __cdecl std::operator&lt;&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??$?M_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual char __cdecl std::ctype&lt;wchar_t&gt;::do_narrow(wchar_t,char)const " (?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t const * __cdecl std::ctype&lt;wchar_t&gt;::do_narrow(wchar_t const *,wchar_t const *,char,char *)const " (?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t __cdecl std::ctype&lt;wchar_t&gt;::do_widen(char)const " (?do_widen@?$ctype@_W@std@@MEBA_WD@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual char const * __cdecl std::ctype&lt;wchar_t&gt;::do_widen(char const *,char const *,wchar_t *)const " (?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t __cdecl std::ctype&lt;wchar_t&gt;::do_toupper(wchar_t)const " (?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t const * __cdecl std::ctype&lt;wchar_t&gt;::do_toupper(wchar_t *,wchar_t const *)const " (?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t __cdecl std::ctype&lt;wchar_t&gt;::do_tolower(wchar_t)const " (?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t const * __cdecl std::ctype&lt;wchar_t&gt;::do_tolower(wchar_t *,wchar_t const *)const " (?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t const * __cdecl std::ctype&lt;wchar_t&gt;::do_scan_not(short,wchar_t const *,wchar_t const *)const " (?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t const * __cdecl std::ctype&lt;wchar_t&gt;::do_scan_is(short,wchar_t const *,wchar_t const *)const " (?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual bool __cdecl std::ctype&lt;wchar_t&gt;::do_is(short,wchar_t)const " (?do_is@?$ctype@_W@std@@MEBA_NF_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual wchar_t const * __cdecl std::ctype&lt;wchar_t&gt;::do_is(wchar_t const *,wchar_t const *,short *)const " (?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::ctype&lt;wchar_t&gt;::ctype&lt;wchar_t&gt;(unsigned __int64)" (__imp_??0?$ctype@_W@std@@QEAA@_K@Z) referenced in function "class std::ctype&lt;wchar_t&gt; const &amp; __cdecl std::use_facet&lt;class std::ctype&lt;wchar_t&gt; &gt;(class std::locale const &amp;,class std::ctype&lt;wchar_t&gt; const *,bool)" (??$use_facet@V?$ctype@_W@std@@@std@@YAAEBV?$ctype@_W@0@AEBVlocale@0@PEBV10@_N@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class std::locale::id std::ctype&lt;wchar_t&gt;::id" (__imp_?id@?$ctype@_W@std@@2V0locale@2@A)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl std::ctype&lt;wchar_t&gt;::~ctype&lt;wchar_t&gt;(void)" (__imp_??1?$ctype@_W@std@@UEAA@XZ) referenced in function "public: virtual void * __cdecl std::ctype&lt;wchar_t&gt;::`scalar deleting destructor'(unsigned int)" (??_G?$ctype@_W@std@@UEAAPEAXI@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: void __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::setg(wchar_t *,wchar_t *,wchar_t *)" (__imp_?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z) referenced in function "protected: virtual class std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt; * __cdecl `anonymous namespace'::parser_buf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::setbuf(wchar_t *,__int64)" (?setbuf@?$parser_buf@_WU?$char_traits@_W@std@@@?A0x35f75ea7@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@PEA_W_J@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: wchar_t * __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::eback(void)const " (__imp_?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ) referenced in function "protected: virtual class std::fpos&lt;int&gt; __cdecl `anonymous namespace'::parser_buf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::seekpos(class std::fpos&lt;int&gt;,int)" (?seekpos@?$parser_buf@_WU?$char_traits@_W@std@@@?A0x35f75ea7@@MEAA?AV?$fpos@H@std@@V34@H@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: wchar_t * __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::egptr(void)const " (__imp_?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ) referenced in function "protected: virtual class std::fpos&lt;int&gt; __cdecl `anonymous namespace'::parser_buf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::seekpos(class std::fpos&lt;int&gt;,int)" (?seekpos@?$parser_buf@_WU?$char_traits@_W@std@@@?A0x35f75ea7@@MEAA?AV?$fpos@H@std@@V34@H@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) protected: wchar_t * __cdecl std::basic_streambuf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::gptr(void)const " (__imp_?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ) referenced in function "protected: virtual class std::fpos&lt;int&gt; __cdecl `anonymous namespace'::parser_buf&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt; &gt;::seekoff(__int64,enum std::ios_base::seekdir,int)" (?seekoff@?$parser_buf@_WU?$char_traits@_W@std@@@?A0x35f75ea7@@MEAA?AV?$fpos@H@std@@_JW4seekdir@ios_base@4@H@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::codecvt&lt;wchar_t,char,int&gt;::do_length(int &amp;,wchar_t const *,wchar_t const *,unsigned __int64)const " (?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1_K@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::codecvt&lt;wchar_t,char,int&gt;::do_out(int &amp;,wchar_t const *,wchar_t const *,wchar_t const * &amp;,char *,char *,char * &amp;)const " (?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::codecvt&lt;wchar_t,char,int&gt;::do_in(int &amp;,char const *,char const *,char const * &amp;,wchar_t *,wchar_t *,wchar_t * &amp;)const " (?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::codecvt&lt;wchar_t,char,int&gt;::do_encoding(void)const " (?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::codecvt&lt;wchar_t,char,int&gt;::do_max_length(void)const " (?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual bool __cdecl std::codecvt&lt;wchar_t,char,int&gt;::do_always_noconv(void)const " (?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::codecvt&lt;wchar_t,char,int&gt;::codecvt&lt;wchar_t,char,int&gt;(unsigned __int64)" (__imp_??0?$codecvt@_WDH@std@@QEAA@_K@Z) referenced in function "class std::codecvt&lt;wchar_t,char,int&gt; const &amp; __cdecl std::use_facet&lt;class std::codecvt&lt;wchar_t,char,int&gt; &gt;(class std::locale const &amp;,class std::codecvt&lt;wchar_t,char,int&gt; const *,bool)" (??$use_facet@V?$codecvt@_WDH@std@@@std@@YAAEBV?$codecvt@_WDH@0@AEBVlocale@0@PEBV10@_N@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class std::locale::id std::codecvt&lt;wchar_t,char,int&gt;::id" (__imp_?id@?$codecvt@_WDH@std@@2V0locale@2@A)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl std::codecvt&lt;wchar_t,char,int&gt;::~codecvt&lt;wchar_t,char,int&gt;(void)" (__imp_??1?$codecvt@_WDH@std@@UEAA@XZ) referenced in function "public: virtual void * __cdecl std::codecvt&lt;wchar_t,char,int&gt;::`scalar deleting destructor'(unsigned int)" (??_G?$codecvt@_WDH@std@@UEAAPEAXI@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl std::messages&lt;wchar_t&gt;::do_close(int)const " (?do_close@?$messages@_W@std@@MEBAXH@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::messages&lt;wchar_t&gt;::do_get(int,int,int,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)const " (?do_get@?$messages@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@HHHAEBV32@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::messages&lt;wchar_t&gt;::do_open(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;,class std::locale const &amp;)const " (?do_open@?$messages@_W@std@@MEBAHAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@AEBVlocale@2@@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::messages&lt;wchar_t&gt;::messages&lt;wchar_t&gt;(unsigned __int64)" (__imp_??0?$messages@_W@std@@QEAA@_K@Z) referenced in function "class std::messages&lt;wchar_t&gt; const &amp; __cdecl std::use_facet&lt;class std::messages&lt;wchar_t&gt; &gt;(class std::locale const &amp;,class std::messages&lt;wchar_t&gt; const *,bool)" (??$use_facet@V?$messages@_W@std@@@std@@YAAEBV?$messages@_W@0@AEBVlocale@0@PEBV10@_N@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class std::locale::id std::messages&lt;wchar_t&gt;::id" (__imp_?id@?$messages@_W@std@@2V0locale@2@A)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl std::messages&lt;wchar_t&gt;::~messages&lt;wchar_t&gt;(void)" (__imp_??1?$messages@_W@std@@UEAA@XZ) referenced in function "public: virtual void * __cdecl std::messages&lt;wchar_t&gt;::`scalar deleting destructor'(unsigned int)" (??_G?$messages@_W@std@@UEAAPEAXI@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual long __cdecl std::collate&lt;wchar_t&gt;::do_hash(wchar_t const *,wchar_t const *)const " (?do_hash@?$collate@_W@std@@MEBAJPEB_W0@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; __cdecl std::collate&lt;wchar_t&gt;::do_transform(wchar_t const *,wchar_t const *)const " (?do_transform@?$collate@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "protected: virtual int __cdecl std::collate&lt;wchar_t&gt;::do_compare(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *)const " (?do_compare@?$collate@_W@std@@MEBAHPEB_W000@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::collate&lt;wchar_t&gt;::collate&lt;wchar_t&gt;(unsigned __int64)" (__imp_??0?$collate@_W@std@@QEAA@_K@Z) referenced in function "class std::collate&lt;wchar_t&gt; const &amp; __cdecl std::use_facet&lt;class std::collate&lt;wchar_t&gt; &gt;(class std::locale const &amp;,class std::collate&lt;wchar_t&gt; const *,bool)" (??$use_facet@V?$collate@_W@std@@@std@@YAAEBV?$collate@_W@0@AEBVlocale@0@PEBV10@_N@Z)&lt;br /&gt;cpp_regex_traits.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class std::locale::id std::collate&lt;wchar_t&gt;::id" (__imp_?id@?$collate@_W@std@@2V0locale@2@A)&lt;br /&gt;cpp_regex_traits.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl std::collate&lt;wchar_t&gt;::~collate&lt;wchar_t&gt;(void)" (__imp_??1?$collate@_W@std@@UEAA@XZ) referenced in function "public: virtual void * __cdecl std::collate&lt;wchar_t&gt;::`scalar deleting destructor'(unsigned int)" (??_G?$collate@_W@std@@UEAAPEAXI@Z)&lt;br /&gt;wide_posix_api.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::compare(wchar_t const *)const " (__imp_?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z) referenced in function "wchar_t const * __cdecl boost::re_detail::re_is_set_member&lt;wchar_t const *,wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt;(wchar_t const *,wchar_t const *,struct boost::re_detail::re_set_long const *,class boost::reg_expression&lt;wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; const &amp;)" (??$re_is_set_member@PEB_W_WV?$regex_traits@_W@boost@@V?$allocator@_W@detail@2@@re_detail@boost@@YAPEB_WPEB_W0PEBUre_set_long@01@AEBV?$reg_expression@_WV?$regex_traits@_W@boost@@V?$allocator@_W@detail@2@@1@@Z)&lt;br /&gt;winstances.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::compare(wchar_t const *)const " (__imp_?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHPEB_W@Z)&lt;br /&gt;winstances.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(wchar_t const *,unsigned __int64,class std::allocator&lt;wchar_t&gt; const &amp;)" (__imp_??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z) referenced in function "public: class boost::reg_expression&lt;wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl boost::reg_expression&lt;wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt;::assign(wchar_t const *,unsigned __int64,unsigned int)" (?assign@?$reg_expression@_WV?$regex_traits@_W@boost@@V?$allocator@_W@detail@2@@boost@@QEAAAEAV12@PEB_W_KI@Z)&lt;br /&gt;winstances.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::compare(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)const " (__imp_?compare@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAHAEBV12@@Z) referenced in function "public: int __cdecl boost::reg_expression&lt;wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt;::compare(class boost::reg_expression&lt;wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; const &amp;)const " (?compare@?$reg_expression@_WV?$regex_traits@_W@boost@@V?$allocator@_W@detail@2@@boost@@QEBAHAEBV12@@Z)&lt;br /&gt;winstances.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; &amp; __cdecl std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;::operator=(wchar_t)" (__imp_??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEAV01@_W@Z) referenced in function "private: struct boost::re_detail::re_syntax_base * __cdecl boost::reg_expression&lt;wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt;::compile_set(wchar_t const * &amp;,wchar_t const *)" (?compile_set@?$reg_expression@_WV?$regex_traits@_W@boost@@V?$allocator@_W@detail@2@@boost@@AEAAPEAUre_syntax_base@re_detail@2@AEAPEB_WPEB_W@Z)&lt;br /&gt;winstances.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) bool __cdecl std::operator&gt;=&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??$?P_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z) referenced in function "private: struct boost::re_detail::re_syntax_base * __cdecl boost::reg_expression&lt;wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt;::compile_set_aux(class boost::re_detail::jstack&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp;,class boost::re_detail::jstack&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp;,class boost::re_detail::jstack&lt;unsigned long,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp;,class boost::re_detail::jstack&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp;,bool,struct boost::re_detail::_narrow_type const &amp;)" (?compile_set_aux@?$reg_expression@_WV?$regex_traits@_W@boost@@V?$allocator@_W@detail@2@@boost@@AEAAPEAUre_syntax_base@re_detail@2@AEAV?$jstack@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@_W@detail@boost@@@42@0AEAV?$jstack@KV?$allocator@_W@detail@boost@@@42@0_NAEBU_narrow_type@42@@Z)&lt;br /&gt;winstances.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) bool __cdecl std::operator&lt;=&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;,class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt; const &amp;)" (__imp_??$?N_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA_NAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@0@Z) referenced in function "private: struct boost::re_detail::re_syntax_base * __cdecl boost::reg_expression&lt;wchar_t,class boost::regex_traits&lt;wchar_t&gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt;::compile_set_aux(class boost::re_detail::jstack&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp;,class boost::re_detail::jstack&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp;,class boost::re_detail::jstack&lt;unsigned long,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp;,class boost::re_detail::jstack&lt;class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;,class boost::detail::allocator&lt;wchar_t&gt; &gt; &amp;,bool,struct boost::re_detail::_narrow_type const &amp;)" (?compile_set_aux@?$reg_expression@_WV?$regex_traits@_W@boost@@V?$allocator@_W@detail@2@@boost@@AEAAPEAUre_syntax_base@re_detail@2@AEAV?$jstack@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@_W@detail@boost@@@42@0AEAV?$jstack@KV?$allocator@_W@detail@boost@@@42@0_NAEBU_narrow_type@42@@Z)&lt;br /&gt;bin\boost\libs\regex\build\boost_regex.dll\mssdk-amd64\debug\boost_regex-mssdk-gd-1_31.dll : fatal error LNK1120: 90 unresolved externals&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;PS: The source needed some patching - but this should not be too important I guess:&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;diff -cr orig/boost/detail/atomic_count_win32.hpp new/boost/detail/atomic_count_win32.hpp&lt;br /&gt;*** orig/boost/detail/atomic_count_win32.hpp Mon Jul 16 21:02:50 2007&lt;br /&gt;--- new/boost/detail/atomic_count_win32.hpp Mon Jul 16 21:01:03 2007&lt;br /&gt;***************&lt;br /&gt;*** 34,45 ****&lt;br /&gt;  &lt;br /&gt;  // Intel 6.0 on Win64 version, posted by Tim Fenders to [boost-users]&lt;br /&gt;  &lt;br /&gt;! extern "C" long_type __cdecl _InterlockedIncrement(long volatile *);&lt;br /&gt;! extern "C" long_type __cdecl _InterlockedDecrement(long volatile *);&lt;br /&gt;  &lt;br /&gt;  #pragma intrinsic(_InterlockedIncrement)&lt;br /&gt;  #pragma intrinsic(_InterlockedDecrement)&lt;br /&gt;  &lt;br /&gt;  inline long InterlockedIncrement(long volatile * lp)&lt;br /&gt;  { &lt;br /&gt;      return _InterlockedIncrement(lp);&lt;br /&gt;--- 34,46 ----&lt;br /&gt;  &lt;br /&gt;  // Intel 6.0 on Win64 version, posted by Tim Fenders to [boost-users]&lt;br /&gt;  &lt;br /&gt;! extern "C" long __cdecl _InterlockedIncrement(long volatile *);&lt;br /&gt;! extern "C" long __cdecl _InterlockedDecrement(long volatile *);&lt;br /&gt;  &lt;br /&gt;  #pragma intrinsic(_InterlockedIncrement)&lt;br /&gt;  #pragma intrinsic(_InterlockedDecrement)&lt;br /&gt;  &lt;br /&gt;+ #if defined( _M_IA64 )&lt;br /&gt;  inline long InterlockedIncrement(long volatile * lp)&lt;br /&gt;  { &lt;br /&gt;      return _InterlockedIncrement(lp);&lt;br /&gt;***************&lt;br /&gt;*** 50,55 ****&lt;br /&gt;--- 51,63 ----&lt;br /&gt;      return _InterlockedDecrement(lp);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;+ #elif defined( _M_AMD64 )&lt;br /&gt;+ &lt;br /&gt;+ #define InterlockedIncrement _InterlockedIncrement&lt;br /&gt;+ #define InterlockedDecrement _InterlockedDecrement&lt;br /&gt;+ &lt;br /&gt;+ #endif&lt;br /&gt;+ &lt;br /&gt;  #else  // _WIN64&lt;br /&gt;  &lt;br /&gt;  extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement(long volatile *);&lt;br /&gt;Only in orig/boost/detail: iterator.hpp&lt;br /&gt;diff -cr orig/boost/detail/lwm_win32.hpp new/boost/detail/lwm_win32.hpp&lt;br /&gt;*** orig/boost/detail/lwm_win32.hpp Mon Jul 16 21:03:02 2007&lt;br /&gt;--- new/boost/detail/lwm_win32.hpp Mon Jul 16 21:01:03 2007&lt;br /&gt;***************&lt;br /&gt;*** 38,51 ****&lt;br /&gt;  &lt;br /&gt;  // Intel 6.0 on Win64 version, posted by Tim Fenders to [boost-users]&lt;br /&gt;  &lt;br /&gt;! extern "C" long_type __cdecl _InterlockedExchange(long volatile *, long);&lt;br /&gt;  &lt;br /&gt;  #pragma intrinsic(_InterlockedExchange)&lt;br /&gt;  &lt;br /&gt;  inline long InterlockedExchange(long volatile* lp, long l)&lt;br /&gt;  {&lt;br /&gt;      return _InterlockedExchange(lp, l);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  #else  // _WIN64&lt;br /&gt;  &lt;br /&gt;--- 38,57 ----&lt;br /&gt;  &lt;br /&gt;  // Intel 6.0 on Win64 version, posted by Tim Fenders to [boost-users]&lt;br /&gt;  &lt;br /&gt;! extern "C" long __cdecl _InterlockedExchange(long volatile *, long);&lt;br /&gt;  &lt;br /&gt;  #pragma intrinsic(_InterlockedExchange)&lt;br /&gt;  &lt;br /&gt;+ #if defined( _M_IA64 )&lt;br /&gt;  inline long InterlockedExchange(long volatile* lp, long l)&lt;br /&gt;  {&lt;br /&gt;      return _InterlockedExchange(lp, l);&lt;br /&gt;  }&lt;br /&gt;+ #elif defined( _M_AMD64 )&lt;br /&gt;+ &lt;br /&gt;+ #define InterlockedExchange _InterlockedExchange&lt;br /&gt;+ &lt;br /&gt;+ #endif&lt;br /&gt;  &lt;br /&gt;  #else  // _WIN64&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;diff -cr orig/libs/regex/src/wide_posix_api.cpp new/libs/regex/src/wide_posix_api.cpp&lt;br /&gt;*** orig/libs/regex/src/wide_posix_api.cpp Mon Jul 16 21:03:44 2007&lt;br /&gt;--- new/libs/regex/src/wide_posix_api.cpp Mon Jul 16 21:01:03 2007&lt;br /&gt;***************&lt;br /&gt;*** 142,154 ****&lt;br /&gt;        {&lt;br /&gt;           if(std::wcscmp(e-&gt;re_endp, wnames[i]) == 0)&lt;br /&gt;           {&lt;br /&gt;!             std::swprintf(localbuf, 5, L"%d", i);&lt;br /&gt;              if(std::wcslen(localbuf) &lt; buf_size)&lt;br /&gt;                 std::wcscpy(buf, localbuf);&lt;br /&gt;              return std::wcslen(localbuf) + 1;&lt;br /&gt;           }&lt;br /&gt;        }&lt;br /&gt;!       std::swprintf(localbuf, 5, L"%d", 0);&lt;br /&gt;        if(std::wcslen(localbuf) &lt; buf_size)&lt;br /&gt;           std::wcscpy(buf, localbuf);&lt;br /&gt;        return std::wcslen(localbuf) + 1;&lt;br /&gt;--- 142,156 ----&lt;br /&gt;        {&lt;br /&gt;           if(std::wcscmp(e-&gt;re_endp, wnames[i]) == 0)&lt;br /&gt;           {&lt;br /&gt;!             //std::swprintf(localbuf, 5, L"%d", i);&lt;br /&gt;!             std::swprintf(localbuf, L"%d", i);&lt;br /&gt;              if(std::wcslen(localbuf) &lt; buf_size)&lt;br /&gt;                 std::wcscpy(buf, localbuf);&lt;br /&gt;              return std::wcslen(localbuf) + 1;&lt;br /&gt;           }&lt;br /&gt;        }&lt;br /&gt;!       //std::swprintf(localbuf, 5, L"%d", 0);&lt;br /&gt;!       std::swprintf(localbuf, L"%d", 0);&lt;br /&gt;        if(std::wcslen(localbuf) &lt; buf_size)&lt;br /&gt;           std::wcscpy(buf, localbuf);&lt;br /&gt;        return std::wcslen(localbuf) + 1;&lt;br /&gt;diff -cr orig/libs/thread/src/once.cpp new/libs/thread/src/once.cpp&lt;br /&gt;*** orig/libs/thread/src/once.cpp Mon Jul 16 21:04:04 2007&lt;br /&gt;--- new/libs/thread/src/once.cpp Mon Jul 16 21:01:03 2007&lt;br /&gt;***************&lt;br /&gt;*** 106,116 ****&lt;br /&gt;--- 106,125 ----&lt;br /&gt;      return (LONG)(*ice)((LPVOID*)dest, (LPVOID)exch, (LPVOID)cmp);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;+ //#pragma intrinsic(_InterlockedCompareExchange)&lt;br /&gt;  // The friendly form of InterlockedCompareExchange that defers&lt;br /&gt;  // according to the above function type wrappers.&lt;br /&gt;  inline LONG compare_exchange(volatile LPLONG dest, LONG exch, LONG cmp)&lt;br /&gt;  {&lt;br /&gt;+ #ifdef _WIN64&lt;br /&gt;+     // Picked from 1.34&lt;br /&gt;+     // Original patch from Anthony Williams.&lt;br /&gt;+     // I (Roland Schwarz) am trying this for RC_1_34_0, since x64 regressions are&lt;br /&gt;+     // currently not run on x64 platforms for HEAD&lt;br /&gt;+     return InterlockedCompareExchange(dest, exch,cmp);&lt;br /&gt;+ #else&lt;br /&gt;      return ice_wrapper(&amp;InterlockedCompareExchange, dest, exch, cmp);&lt;br /&gt;+ #endif&lt;br /&gt;  }&lt;br /&gt;  }&lt;br /&gt;  #endif&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36177874-3845855555801389767?l=cxxkarma.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cxxkarma.blogspot.com/feeds/3845855555801389767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=36177874&amp;postID=3845855555801389767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/3845855555801389767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/3845855555801389767'/><link rel='alternate' type='text/html' href='http://cxxkarma.blogspot.com/2007/07/building-boost-with-ms-platform-sdk.html' title='Building Boost with MS Platform SDK AMD64 Cross-compiler'/><author><name>Arindam Mukherjee</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15519738517572486014'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36177874.post-2911273141571957192</id><published>2007-06-19T19:01:00.000+05:30</published><updated>2007-06-28T19:08:22.216+05:30</updated><title type='text'>List mania: C++ (and other) Books</title><content type='html'>This list includes almost all books that have been published on C++ and that are of any relevance today. More importantly, I have tried to exclude books which you really don't need to read at all - for example Robert Lafore's introductory book on C++. These may not be bad books - just that there are better, more readable books already available.&lt;br /&gt;&lt;br /&gt;&lt;U&gt;For the beginner&lt;/U&gt;&lt;br /&gt;1. C++ Primer - Stan Lippman, Joseé Lajoie&lt;br /&gt;2. Thinking in C++ (vol 1 &amp; 2) - Bruce Eckel&lt;br /&gt;3. Big C++ - Cay Horstmann, Timothy Budd&lt;br /&gt;&lt;br /&gt;&lt;U&gt;For the intermediate programmer (perhaps new to C++)&lt;/U&gt;&lt;br /&gt;1. Accelerated C++ - Andrew König, Barbara Moo&lt;br /&gt;2. The C++ Standard Library: Tutorial and Reference Guide - Nicolai M Josuttis&lt;br /&gt;3. C++ Templates - Nicolai M Josuttis, David Vandevoorde&lt;br /&gt;4. Essential C++ - Stan Lippman&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;U&gt;For the practising C++ programmer&lt;/U&gt;&lt;br /&gt;1. The C++ Programming Language - Bjarne Stroustrup&lt;br /&gt;2. Effective C++ 3/e - Scott Meyers&lt;br /&gt;3. More Effective C++ - Scott Meyers&lt;br /&gt;4. Effective STL - Scott Meyers&lt;br /&gt;5. More C++ Gems - ed Robert Martin&lt;br /&gt;6. The STL Tutorial and Reference Guide - Dave Musser, Atul Saini (the ANSI standard edition)&lt;br /&gt;7. Generic Programming with STL: ... - Matt Austern&lt;br /&gt;8. Exceptional C++ - Herb Sutter&lt;br /&gt;9. The C++ Standard Library Extensions: A tutorial and reference - Pete Becker&lt;br /&gt;10. More Exceptional C++ - Herb Sutter&lt;br /&gt;11. C++ Common Knowledge - Steve Dewhurst&lt;br /&gt;12. Beyond the C++ Standard Library: An Introduction to Boost - Björn Karlsson&lt;br /&gt;13. C++ Coding Standards: 101 guidelines ... - Herb Sutter, Andrei Alexandrescu&lt;br /&gt;14. Large Scale C++ Software Design - John Lakos&lt;br /&gt;15.&lt;br /&gt;16.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;U&gt;For the Advanced Programmer&lt;/U&gt;&lt;br /&gt;1. Design Patterns: Elements of Reusable object Oriented Software - Gamma, Helm, Vlissides, Hodgson&lt;br /&gt;2. Modern C++ Design - Andrei Alexandrescu&lt;br /&gt;3. Exceptional C++ Style - Herb Sutter&lt;br /&gt;4. Template Metaprogramming: ... - Dave Abrahams, Aleksey Gurtovoy&lt;br /&gt;5. Imperfect C++ - Matt Wilson&lt;br /&gt;6. Pattern Hatching - John Vlissides&lt;br /&gt;7. &lt;br /&gt;8. &lt;br /&gt;9. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;U&gt;For the language and standard junkie&lt;/U&gt;&lt;br /&gt;1. The Design and Evolution of C++ - Bjarne Stroustrup&lt;br /&gt;2. Inside the C++ Object Model - Stan Lippman&lt;br /&gt;3. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;EM&gt;Books on specific libraries outside C++ and Boost have not been mentioned. A separate list can be created for those.&lt;/EM&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;U&gt;Advanced books on specific topics&lt;/U&gt;&lt;br /&gt;1. Boost Graph Library - Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine&lt;br /&gt;2. Standard C++ IoStreams and Locales: ... - Angelika Langer, Klaus Kreft&lt;br /&gt;3.&lt;br /&gt;4.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;U&gt;Older books still worth a read&lt;/U&gt;&lt;br /&gt;1. C++ Gems - ed Stan Lippman&lt;br /&gt;(especially the part on Templates - includes original articles from Czarnecki, Eisencker and one more whose name I forgot)&lt;br /&gt;2. The Annotated C++ Reference Manual - Stroustrup, Margaret Ellis&lt;br /&gt;3. C++ Gotchas - Stephen Dewhurst&lt;br /&gt;4. C++ Programming Style - Tom Cargill&lt;br /&gt;5. Advanced C++ Programming Styles and Idioms - James Coplien&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36177874-2911273141571957192?l=cxxkarma.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cxxkarma.blogspot.com/feeds/2911273141571957192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=36177874&amp;postID=2911273141571957192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/2911273141571957192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/2911273141571957192'/><link rel='alternate' type='text/html' href='http://cxxkarma.blogspot.com/2007/06/list-mania-c-and-other-books_19.html' title='List mania: C++ (and other) Books'/><author><name>Arindam Mukherjee</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15519738517572486014'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36177874.post-4124248697546018539</id><published>2007-04-18T15:19:00.000+05:30</published><updated>2007-04-18T18:46:06.061+05:30</updated><title type='text'>Basic terminal manipulation with C++ and ncurses</title><content type='html'>This one is a rather hastily written post. I frequent many online forums where newbies mob the lists and cause endless pain to the moderators with questions relating to some really evil non-standard ways of writing code that some compiler vendors of the Real Mode age popularised with their insipid IDEs. A large part of this concerns how to "clear the screen", "read a key press" and "position the cursor at some specified location" on the terminal screen.&lt;br /&gt;&lt;br /&gt;I kind of figured out a plausible reason for this obsession with terminal manipulation. For some reason, the second program that some of these blokes have ever written after the customary "Hello, World!" was something like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;#include &amp;lt;conio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;void main()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;clrscr();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;printf("Hello, World!\n");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;getch();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;color:#ff0000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style="color:#000000;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Now I don't mean to be taken too seriously on this "second program" thing, but what I do mean is that too many youngsters have tried writing programs like the one above without much clue about where all they are going wrong.&lt;br /&gt;&lt;span style="color:#333333;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:georgia;"&gt;If you feel revolting while reading code in non-monospace red font you are with me. But at this point, if you do not have bigger concerns about this code than the typesetting, then read on, cause you ought to have had, and having not had it, you need enlightenment. If you do have, read on all the same because you might still need the technique described below.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:Georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:Georgia;"&gt;The above program is awful, for a number of reasons - all of which relate to a severe flouting of coding standards and in fact a severe breach of language standards by compiler which encourages and compiles such code. &lt;strong&gt;void main &lt;/strong&gt;is of course wrong, but &lt;strong&gt;&lt;em&gt;conio.h&lt;/em&gt;&lt;/strong&gt; is not a standard header, nor are &lt;strong&gt;clrscr()&lt;/strong&gt; and &lt;strong&gt;getch()&lt;/strong&gt; standard functions.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:Georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Clearing the screen is a no-no&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:Georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-family:Georgia;"&gt;Apart from the syntactic issues, there are semantic issues in this piece of code as well. Know this, if you are writing a text console-based application, normally you will not want to clear the user's screen through your code. You never know what kind of terminal the user is using and what kind of data might be on display on this terminal. If the terminal is of the kind that can't be scrolled back, and there was sensitive data on display that the user somehow needed, and you happen to clear the screen just as you started your program - then at the least you have helped the user to a pretty bad experience, and at the most your company can be sued for losses or at least your product can earn a bad usability rating.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Keypress inputs are not cool&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Blocking on a keypress with getch() would have been fine in the above example, had getch been standard. But even if it was standard, taking single character inputs from the user in the form of keypresses is a pretty bad idea, if the key pressed by the user matters to the program. There are some exceptions to it, but in general you would want the user to type exactly what she means, take a long hard look to make sure that this is indeed her intended input, and then confirm by hitting the Return key. Thereafter, the input is yours. But you don't want to process accidental key-presses as valid inputs. Barring exceptions, the general rule of thumb is, then:&lt;br /&gt;&lt;br /&gt;1. Do not clear the user's screen on your own&lt;br /&gt;2. Do not take important inputs as key presses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;The ncurses way&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Even if we agree on the semantic rules of terminal manipulation above, we still have several questions unanswered.&lt;br /&gt;&lt;br /&gt;1. Exactly what are those exceptional conditions when these services might be required?&lt;br /&gt;2. If code is being written on *nix systems, or for that matter on Windows also, what is a portable way of clearing the screen, registering key-presses and positioning the cursor at arbitrary locations?&lt;br /&gt;&lt;br /&gt;These are the questions, answers to which we explore in the rest of this article. Along the way, we will develop a C++ class which can be used on Unix terminals fairly portably to do all the terminal manipulation. It should work even on Windows, if the appropriate (free) libraries are available for linking.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#333333;"&gt;I chose to answer the second question ahead of the first because at this point I have had enough words and not enough code. I guess it's true for you too. So how would such an implementation look, and how are we going to use it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;The UnixTerminal class and its use&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Here is the header file containing the definition of a class called UnixTerminal. This class needs to be instantiated with just two arguments passed to its constructor - the input file descriptor and output file descriptor.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#339999;"&gt;// file: UnixTerminal.hpp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;#ifndef __UNIX_TERMINAL__&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;&lt;span style="color:#3333ff;"&gt;#define&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt; __UNIX_TERMINAL__&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#include&lt;/span&gt; &amp;lt;boost/shared_ptr.hpp&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;#include&lt;/span&gt; &amp;lt;string&amp;gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#include&lt;/span&gt; &amp;lt;exception&amp;gt;&lt;exception&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;class&lt;/span&gt; UnixTerminal&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;public&lt;/span&gt;:&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;enum&lt;/span&gt; mode_t { read = 0, write = 1 };&lt;br /&gt;UnixTerminal( &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; in_filedes = STDIN_FILENO, &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; out_filedes = STDOUT_FILENO );&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; clear();&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; keyPress( &lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; echo = &lt;span style="color:#3333ff;"&gt;true&lt;/span&gt; );&lt;br /&gt;bool setCursorAt( &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; x, &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; y );&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; getLines();&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; getCols();&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;friend&lt;/span&gt; UnixTerminal&amp; &lt;span style="color:#3333ff;"&gt;operator&lt;/span&gt; &amp;lt;&amp;lt; ( UnixTerminal&amp;, &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; std::string&amp;amp;amp; out ); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;friend&lt;/span&gt; UnixTerminal&amp; &lt;span style="color:#3333ff;"&gt;operator&lt;/span&gt; &amp;gt;&amp;gt; ( UnixTerminal&amp;, std::string&amp;amp;amp; in );&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;private&lt;/span&gt;:&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; get_screen_measure( &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt;* measure_name );&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;struct&lt;/span&gt; TermData;&lt;br /&gt;boost::shared_ptr&lt;termdata&gt; in_, out_;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; in_eof_;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;struct&lt;/span&gt; PutcToTerm;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;struct&lt;/span&gt; TermException : std::exception {&lt;br /&gt;TermException ( &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; char * msg ) &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;() : what_(msg)&lt;br /&gt;{}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt;* what() &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; what_.c_str();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;~TermException() &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;()&lt;br /&gt;{}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;private&lt;/span&gt;:&lt;br /&gt;std::string what_;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#endif&lt;/span&gt; &lt;span style="color:#339999;"&gt;/*__UNIX_TERMINAL__*/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;A typical use of this class will be in code like the following:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#include&lt;/span&gt; "UnixTerminal.hpp"&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#include&lt;/span&gt; &amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; main()&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;try&lt;/span&gt; {&lt;br /&gt;UnixTerminal ut;&lt;br /&gt;std::string s1 = "Yonatan Rabin";&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;// print message&lt;/span&gt;&lt;br /&gt;ut &amp;lt;&amp;lt; s1;&lt;br /&gt;&lt;span style="color:#339999;"&gt;// register key-press - without echoing (false)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; ch = ut.keyPress(false);&lt;br /&gt;&lt;span style="color:#339999;"&gt;// clear screen&lt;/span&gt;&lt;br /&gt;ut.clear();&lt;br /&gt;std::cout &amp;lt;&amp;lt; ch &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;// position cursor at the middle of the screen&lt;/span&gt;&lt;br /&gt;if ( ! ut.setCursorAt( ut.getCols()/2, ut.getLines()/2 ) )&lt;br /&gt;std::cerr &amp;lt;&amp;lt; "Could not set cursor position" &amp;lt;&amp;lt; std::endl;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;// take line input into s2&lt;/span&gt;&lt;br /&gt;std::string s2;&lt;br /&gt;ut &amp;gt;&amp;gt; s2;&lt;br /&gt;&lt;br /&gt;std::cout &amp;lt;&amp;lt; s2 &amp;lt;&amp;lt; ": " &amp;lt;&amp;lt; s2.length() &amp;lt;&amp;lt; std::endl;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;catch&lt;/span&gt; (std::exception &amp;obj) {&lt;br /&gt;std::cout &amp;lt;&amp;lt; obj.what();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; 0;&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;&lt;em&gt;The ncurses-based implementation&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Georgia;"&gt;This section will be ready soon.&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36177874-4124248697546018539?l=cxxkarma.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cxxkarma.blogspot.com/feeds/4124248697546018539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=36177874&amp;postID=4124248697546018539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/4124248697546018539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/4124248697546018539'/><link rel='alternate' type='text/html' href='http://cxxkarma.blogspot.com/2007/04/basic-terminal-manipulation-with-c-and.html' title='Basic terminal manipulation with C++ and ncurses'/><author><name>Arindam Mukherjee</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15519738517572486014'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36177874.post-116177983122473109</id><published>2006-10-25T17:50:00.000+05:30</published><updated>2006-10-25T18:30:15.140+05:30</updated><title type='text'>To throw or not to throw</title><content type='html'>&lt;br/&gt;&lt;br /&gt;&lt;i&gt;Dispelling the myths and misgivings people have about throwing exceptions from constructors&lt;/i&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;In course of my four years of writing code, I have come across many cases where I write a C++ class that needs to do something fairly non-trivial in its constructor. The single biggest dilemma I have run into in such situations is to decide on what to do if some operation goes horribly wrong inside the constructor and all bets go off as far completing the construction is concerned.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;First of all, do we throw an exception from a constructor? Is it valid C++, is it a correct practice, can it be recommended? In all this time, no one gave me an affirmative reply to any of these questions - no one from among my seniors, leads or peers. The correct answer however, to all of the questions posed here, is YES. &lt;br /&gt;- Throwing exceptions from constructors is valid in C++.&lt;br /&gt;- Throwing exceptions from constructors is correct and recommended when needed.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&amp;lt ---- incomplete --- code examples will be added ------ &amp;gt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36177874-116177983122473109?l=cxxkarma.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cxxkarma.blogspot.com/feeds/116177983122473109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=36177874&amp;postID=116177983122473109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/116177983122473109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/116177983122473109'/><link rel='alternate' type='text/html' href='http://cxxkarma.blogspot.com/2006/10/to-throw-or-not-to-throw.html' title='To throw or not to throw'/><author><name>Arindam Mukherjee</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15519738517572486014'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36177874.post-116167291844862380</id><published>2006-10-24T12:13:00.000+05:30</published><updated>2006-10-25T18:32:34.593+05:30</updated><title type='text'>Value-type casts of the new age</title><content type='html'>&lt;i&gt;Easy and sensible type conversions of streamable object values / states&lt;/i&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Last weekend I was trying to write for myself a small shim-class which will convert between bool and std::string data types. I wanted the conversions to also handle English words like "true", "yes" or "NO" in an intellligent way and convert them to boolean values.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;I ended up writing a small set of classes which handle conversions between any two streamable types (in other words any type which can be inserted into an ostream object like cout and extracted from an istream object like cin). This work is not a purely original work - influenced by the semantics of boost::lexical_cast. It also uses a case-insensitive std::basic_string constructing which has been described by Herb Sutter in one of his GotW articles.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;It's just that I might just want to use a lexical_cast facility without really bothering to use a whole new library for it (I love boost but if lexical_cast is the only thing I need from its offerings, I'd rather roll out my own, call it egotism if you will).&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;I have disallowed conversions to pointer types. I reckon the only conversion to a pointer type you will really ever need is to char* and you can manage with conversions std::string and then use c_str() accessor member function. If you want to convert from long to some pointer type use casts provided by the language (static_cast / reinterpret_cast).&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;I haven't looked at boost::lexical_cast's code and I am certain it will be tighter than mine. That notwithstanding, my code is listed below.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;/* ---- this file is called conversion.hpp ---- */&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#ifndef&lt;/span&gt; __CONVERSION_HPP__&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#define&lt;/span&gt; __CONVERSION_HPP__&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#include&lt;/span&gt; &amp;lt;sstream&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;namespace&lt;/span&gt; MYUTILS {&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// ---- Case-insensitive character string support ----&lt;br /&gt;// *** WARNING - works only in en locales - ***&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;struct&lt;/span&gt; char_ci_traits : &lt;span style="color:#3333ff;"&gt;public&lt;/span&gt; std::char_traits&amp;lt;&lt;span style="color:#3333ff;"&gt;char&lt;/span&gt;&amp;gt;&lt;br /&gt;{&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;static&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; eq ( &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; c1, &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; c2 )&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; ( toupper(c1) == toupper(c2) );&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;static&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; ne ( &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; c1, &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; c2 )&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; ( toupper(c1) != toupper(c2) );&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;static&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; lt ( &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; c1, &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; c2 )&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; ( toupper(c1) &amp;lt; toupper(c2) );&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;static&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; compare ( &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; * s1,&lt;br /&gt;        &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; * s2,&lt;br /&gt;        &lt;span style="color:#3333ff;"&gt;size_t&lt;/span&gt; n )&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;while&lt;/span&gt; ( n-- &amp;gt; 0 &amp;&amp;amp; toupper(*s1) == toupper(*s2) )&lt;br /&gt;   s1++,s2++;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; ( *s1 - *s2 );&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;static&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; * find ( &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; *s1, &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; n, &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt; a )&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;while&lt;/span&gt; ( n-- &amp;gt;0 &amp;&amp;amp; toupper(*s1) != toupper(a) )&lt;br /&gt;   s1++;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; s1;&lt;br /&gt; }&lt;br /&gt;};&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;typedef&lt;/span&gt; std::basic_string&amp;lt;&lt;span style="color:#3333ff;"&gt;char&lt;/span&gt;, char_ci_traits&amp;gt; ci_string;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;class&lt;/span&gt; bad_lexical_cast : &lt;span style="color:#3333ff;"&gt;public&lt;/span&gt; std::exception&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;public&lt;/span&gt;:&lt;br /&gt; bad_lexical_cast( &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; std::string&amp; error ) : std::exception(), msg_(error)&lt;br /&gt; {&lt;br /&gt;  std::ostringstream strm;&lt;br /&gt;  strm &amp;lt;&amp;lt; "Could not convert [ "&lt;br /&gt;       &amp;lt;&amp;lt; error.c_str()&lt;br /&gt;       &amp;lt;&amp;lt; " ] using lexical_cast";&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;  msg_ = strm.str();&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;virtual&lt;/span&gt; ~bad_lexical_cast() &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;()&lt;br /&gt; {}&lt;br /&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt;* what() &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;()&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; msg_.c_str();&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;protected&lt;/span&gt;:&lt;br /&gt; std::string msg_;&lt;br /&gt;};&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// ---- functor lexical cast ----&lt;br /&gt;// converts between any two streamable types&lt;br /&gt;// 1. For conversion to non-strings&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;template&lt;/span&gt; &amp;lt;&lt;span style="color:#3333ff;"&gt;typename&lt;/span&gt; U&amp;gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;struct&lt;/span&gt; __inr_lexical_cast&lt;br /&gt;{&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;template&lt;/span&gt; &amp;lt;&lt;span style="color:#3333ff;"&gt;typename&lt;/span&gt; T&amp;gt;&lt;br /&gt; U &lt;span style="color:#3333ff;"&gt;operator&lt;/span&gt; () ( T val ) &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;(bad_lexical_cast)&lt;br /&gt; {&lt;br /&gt;  std::stringstream strm;&lt;br /&gt;  strm &amp;lt;&amp;lt; val;&lt;br /&gt;  U retval;&lt;br /&gt;  strm &amp;gt;&amp;gt; retval;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;if&lt;/span&gt; ( strm.bad() &amp;#124;&amp;#124; strm.fail() ) {&lt;br /&gt;   &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt; bad_lexical_cast( strm.str() );&lt;br /&gt;  }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; retval;&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt; // Optimization - type to same-type conversion&lt;br /&gt; // No conversion is required - just return what passed to you&lt;/span&gt;&lt;br /&gt; U operator () ( U val )&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; val;&lt;br /&gt; }&lt;br /&gt;};&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// 2. Second overload is for conversion to strings&lt;br /&gt;//    No conversion to "const char*" is provided specifically for this purpose&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;template&lt;/span&gt; &amp;lt;&amp;gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;struct&lt;/span&gt; __inr_lexical_cast&amp;lt;std::string&amp;gt;&lt;br /&gt;{&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;template&lt;/span&gt; &amp;lt;&lt;span style="color:#3333ff;"&gt;typename&lt;/span&gt; T&amp;gt;&lt;br /&gt; std::string &lt;span style="color:#3333ff;"&gt;operator&lt;/span&gt; () ( T val )&lt;br /&gt; {&lt;br /&gt;  std::stringstream strm;&lt;br /&gt;  strm &amp;lt;&amp;lt; val;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; strm.str();&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt; std::string &lt;span style="color:#3333ff;"&gt;operator&lt;/span&gt; () ( std::string val )&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; val;&lt;br /&gt; }&lt;br /&gt;};&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;br /&gt;// 3. Some specialized string-to-bool conversions&lt;br /&gt;//    true, yes, y become 1 and false, no, no become 0&lt;br /&gt;//    - case insensitive so true=TRUE=TrUe, etc.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;template&lt;/span&gt; &amp;lt;&amp;gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;struct&lt;/span&gt; __inr_lexical_cast&amp;lt;bool&amp;gt;&lt;br /&gt;{&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;template&lt;/span&gt; &amp;lt;&lt;span style="color:#3333ff;"&gt;typename&lt;/span&gt; T&amp;gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;operator&lt;/span&gt; () ( T val ) &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;(bad_lexical_cast)&lt;br /&gt; {&lt;br /&gt;  std::stringstream strm;&lt;br /&gt;  strm &amp;lt;&amp;lt; val;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;operator&lt;/span&gt;()( strm.str() );&lt;br /&gt; }&lt;br /&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; &lt;span style="color:#3333ff;"&gt;operator&lt;/span&gt; () ( &lt;span style="color:#3333ff;"&gt;const&lt;/span&gt; std::string&amp; str ) &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;(bad_lexical_cast)&lt;br /&gt; {&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;try&lt;/span&gt;{&lt;br /&gt;   &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; val = __inr_lexical_cast&amp;lt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt;&amp;gt;()( str );&lt;br /&gt;   &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; (val)?&lt;span style="color:#3333ff;"&gt;true&lt;/span&gt;:&lt;span style="color:#3333ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;  }&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;catch&lt;/span&gt;(...){}&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;  ci_string istr = str.c_str();&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;if&lt;/span&gt; ( istr == "yes" &amp;#124;&amp;#124; istr == "y" &amp;#124;&amp;#124; istr == "true" )&lt;br /&gt;   &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; true;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;else&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;if&lt;/span&gt; ( istr == "no" &amp;#124;&amp;#124; istr == "n" &amp;#124;&amp;#124; istr == "false" )&lt;br /&gt;   &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; false;&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;else&lt;/span&gt;&lt;br /&gt;   &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt; bad_lexical_cast(str);&lt;br /&gt; }&lt;br /&gt;};&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// 4. Conversions to pointer-types are not supported&lt;br /&gt;//    To get char*, use lexical_cast&amp;lt;std::string&amp;gt; and use .c_str()&lt;br /&gt;//    of string&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;template&lt;/span&gt; &amp;lt;&lt;span style="color:#3333ff;"&gt;typename&lt;/span&gt; U&amp;gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;struct&lt;/span&gt; __inr_lexical_cast &amp;lt;U*&amp;gt;&lt;br /&gt;{&lt;br /&gt; // No operator () provided&lt;br /&gt; // Something like lexical_cast&amp;lt;char*&amp;gt;(my_obj) won't compile&lt;br /&gt;};&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// ---- Finally the template function front-end to the above functors ----&lt;br /&gt;// - use this as:&lt;br /&gt;// U Uval = lexical_cast&amp;lt;U&amp;gt;(Tval);&lt;br /&gt;// - this syntax is more natural but slightly less-efficient&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;template&lt;/span&gt; &amp;lt;&lt;span style="color:#3333ff;"&gt;typename&lt;/span&gt; U, &lt;span style="color:#3333ff;"&gt;typename&lt;/span&gt; T&amp;gt;&lt;br /&gt;U lexical_cast ( T val ) &lt;span style="color:#3333ff;"&gt;throw&lt;/span&gt;(bad_lexical_cast)&lt;br /&gt;{&lt;br /&gt; U retval = __inr_lexical_cast&amp;lt;U&amp;gt;()(val);&lt;br /&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; retval;&lt;br /&gt;}&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;} &lt;span style="color:#009900;"&gt;/*MYUTILS*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#endif&lt;/span&gt;&lt;br /&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The above code compiles on gcc 2.95 and above. The code does not compile on MSVC 6.0 and I am yet to test it on a later compiler (I have MSVC 7 and I guess it will compile on it).&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Here is some stub code to test the above utilities:&lt;br /&gt; &lt;pre&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// ---- this file is called lexical_cast_test.cpp ----- &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;// lexical_cast_stub : &lt;br /&gt;//&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#include&lt;/span&gt; &amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;#include&lt;/span&gt; "conversion.hpp"&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; main(&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; argc, &lt;span style="color:#3333ff;"&gt;char&lt;/span&gt;* argv[])&lt;br /&gt;{&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;try&lt;/span&gt; {&lt;br /&gt;  std::string val = "52";&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; num = MYUTILS::lexical_cast&amp;lt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt;&amp;gt;(val);&lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt;&amp;gt;(val); &lt;span style="color:#009900;"&gt;// expect num to contain 52&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  val = "TruE";&lt;br /&gt;  &lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt; b = MYUTILS::lexical_cast&amp;lt;&lt;span style="color:#3333ff;"&gt;bool&lt;/span&gt;&amp;gt;(val); &lt;span style="color:#009900;"&gt;// expect b to contain true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  val = "I am not a number";&lt;br /&gt;  num = MYUTILS::lexical_cast&amp;lt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt;&amp;gt;(val); // this should throw bad_lexical_cast&lt;br /&gt; }&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;catch&lt;/span&gt; ( std::exception&amp; e )&lt;br /&gt; {&lt;br /&gt;  std::cout &amp;lt;&amp;lt; e.what ( ) &amp;lt;&amp;lt; std::endl;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; 0;&lt;br /&gt;}&lt;br /&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This form of usage obviates the need for an elaborate set of conversion functions like atoi which can segfault or the [v]s*printf family of functions, whose use is clumsy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36177874-116167291844862380?l=cxxkarma.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cxxkarma.blogspot.com/feeds/116167291844862380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=36177874&amp;postID=116167291844862380' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/116167291844862380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36177874/posts/default/116167291844862380'/><link rel='alternate' type='text/html' href='http://cxxkarma.blogspot.com/2006/10/value-type-casts-of-new-age.html' title='Value-type casts of the new age'/><author><name>Arindam Mukherjee</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15519738517572486014'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry></feed>