Guillaume Munch wrote:

> Is that all the information that the compiler gives you? Does it not
> give you the name of the file?

This is the kind of error messages you often get from templates.
The compiler gives the name of the file where the error occurs, but it is a 
system header and not in our code. What I miss however are the 'included 
from...' lines. This is strange. Are we using precompiled headers with MSVC?

> I tried to understand the error message with what comes up on Google and
> I cannot relate it to my code. In addition, one of the first hits on
> Google is about a message on this list
> <https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg160635.html>,
> so it is possible that the bug is elsewhere (while still fixable by
> adapting my code).

The first hit I get is 
http://stackoverflow.com/questions/11076255/stdbasic-stringstreamunsigned-char-wont-compile-with-msvc-10
 which explains the 
problem quite well IMHO: On windows, wchar_t is 16 bit, and therefore we use 
a custom 32 bit type as char_type. Therefore the std::numpunct facets which 
are defined for char and wchar_t cannot be used, and we need to provide our 
own. Unfortunately MS messed up their STL, which declares 
std::numpunct<_Elem>::id in a template, although it is not (and cannot be) 
provided in the runtime dll for custom character types. Because of the 
awkward way how dlls work (declspec dllexport etc), this declaration 
pretends that the symbol, is exported by a dll (other simply declaring it 
would not be any problem).

The message on the list is related to commit e948caf6, which is supposed to 
fix exactly this issue. What I do not understand it why the fix does not 
work for your recent changes. Maybe you forgot to include docstream.h 
somewhere or got the include order wrong?


Georg


Reply via email to