2013-04-06 37 views
-1

在编写一些代码的含义,我收到了以下奇怪的消息从g++ 4.3.4:什么从G是一个“音符” ++这是没有附加到错误或警告

...include/boost/property_tree/stream_translator.hpp: In member function 'typename 
boost::enable_if<boost::property_tree::detail::is_translator<Translator>, Type>::type 
boost::property_tree::basic_ptree<Key, Data, KeyCompare>::get_value(Translator) const 
[with Type = ObjectType, Translator = boost::property_tree::stream_translator<char, 
std::char_traits<char>, std::allocator<char>, ObjectType>, Key = std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, Data = std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, KeyCompare = 
std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]': 
...include/boost/property_tree/stream_translator.hpp:189: note: 'e' was declared here 

毫无预警或错误附近,我从来没有见过这样的事情g++之前。有谁知道发生了什么事?

+3

应该在它附加的东西之前有一些东西,例如'在成员函数<长模板东西>'e''的多重定义之类。 – chris 2013-04-06 00:21:13

+0

所以我会想,@chris,但是它之前没有任何东西。不幸的是,这是工作代码,所以我没有太多时间来尝试隔离它,而且我必须非常小心我发布的内容。它似乎没有伤害任何东西,我只是好奇它是什么造成的。 – 2013-04-06 00:48:43

+0

我会用更新版本的g ++(但可能不到下周)试试这个,看看会发生什么。 – 2013-04-06 00:52:34

回答

0

在这种情况下,GCC试图提供上下文,以发生进一步的错误。你只显示了一个片段,而不是完整的错误,但这是发生了什么。

这通常发生在模板扩展期间。海湾合作委员会正试图提供扩展发生的背景,所以你有更多的信息来解决这个问题。当您嵌套和/或复杂模板时,这些“注释”可能非常有用。

解决这些错误的最简单方法是自顶向下工作,纠正您看到的第一个错误并转到下一个错误。

+0

除了它不是一个错误。产生这个笔记的文件编译得很好。这也不是一个警告。这是令人困惑的。我发布的代码是'g ++'唯一的输出文件。 – 2013-04-06 01:00:49

+0

你能提供更完整的输出吗?如果情况并非如此,则肯定需要更多的上下文。 – 2013-04-06 01:02:10

0

我知道这是一个旧线程,但在升级到更新版本的wxWidgets(从3.0到3.1)以及g ++(现在运行g ++ 5.3.1)之后,我突然看到了同样的东西。

前面的“注释”是一个警告,提醒注意使用在新版本的wxWidgets中标记为已弃用的构造函数创建的类。该说明只是似乎表示在构造函数的过时的版本声明:

/home/uwake/programs/wx/cuds_db/gp/gpSimple.cpp:157:93: warning: 
’wxFont::wxFont(int, int, int, int, bool, const wxString&, wxFontEncoding)’ 
is deprecated: use wxFONT{FAMILY,STYLE,WEIGHT}_XXX constants 
[-Wdeprecated-declarations] 
    fnt = wxFont (12, wxFONTFAMILY_ROMAN, wxNORMAL, wxNORMAL, false, "Times New Roman"); 
                         ^
In file included from /usr/local/include/wx-3.1/wx/font.h:524:0, 
      from /usr/local/include/wx-3.1/wx/window.h:23, 
      from /usr/local/include/wx-3.1/wx/wx.h:38, 
      from /usr/local/include/wx-3.1/wx/wxprec.h:42, 
      from ./wx_pch.h:14, 
      from <command-line>:0: 
/usr/local/include/wx-3.1/wx/gtk/font.h:89:5: note: declared here 
wxFont(int size, 
^ 

就我而言,我消除了警告,并通过更换不同构造的说明(虽然不是一个推荐的警告,这并不符合我的需要)。

相关问题