【问题标题】:c++ auto does not name a typec++ auto没有命名类型
【发布时间】:2012-06-18 03:28:58
【问题描述】:

我在我的代码中使用关键字 auto

137       auto i = boost::find(adresses, adress);                            

使用以下命令编译时出现这些错误

[vickey@tb tests]$ clear;g++ testCoverDownloader.cpp ../CoverDownloader.cpp -I /usr/include/QtGui/ -I /usr/include/QtCore/ -lQtGui -lQtCore -std=c++0x

../CoverDownloader.cpp:137:10: error: ‘i’ does not name a type
../CoverDownloader.cpp:139:8: error: ‘i’ was not declared in this scope

使用 -std=c++0x 应该可以解决问题。怎么了?

【问题讨论】:

  • 这个错误很可能是在您使用 boost::find 时出现的。话虽如此,请发布 GCC 版本。
  • 一些 gcc 版本采用-std=c++11。这样能解决吗?
  • gcc 版本 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC) , 平台 Fedora 16
  • @VihaanVerma:我没有看到你在命令行的任何地方都包含boost 标头。路径如何解决?
  • 您的源代码中是否有适当的boost 标头包含?发布更多来源。

标签: c++ c++11 auto


【解决方案1】:

boost 标头不会被拾取,原因与 Qt 标头不会被拾取的原因相同,除非您指定 -I /usr/include/QtCore/boost 标头没有什么特别之处,编译器会偏向它们。 GCC 文档的Search Path 部分可能会对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多