本文介绍了我可以用g ++ 4.4使用auto吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以指定-std = c ++ 0x用于编译我的g ++ 4.4,并且初始化程序列表是正确的,我可以使用它们(在c ++ 98中我不行),但在尝试使用auto关键字时仍然会出错:

  std :: list<的std ::矢量< INT> > LI2; 

li2.push_back({1,2,3}); // push_back vector
li2.push_back({4,2,6}); (auto& vv:li2){
for(auto& i:v)
printf(element:%d \\\
,8);




$ b $ p
$ b

所以我假设我不能使用C ++ 11 g ++ 4.4的功能。我有4.4,因为与CUDA兼容。

解决方案

显示了GCC支持的不同C ++ 11功能。 auto 出现在GCC 4.4中。



你真正的问题可能是基于范围的 for 循环仅在GCC 4.6中出现。


I can specify -std=c++0x for compilation with my g++ 4.4, and initializer lists are correct, I may use them (in c++98 I can't) but still get errors when try use auto keyword:

std::list< std::vector<int> > li2;

li2.push_back({1, 2, 3}); //push_back vector
li2.push_back({4, 2, 6}); //again, vector implicitly

for (auto& vv : li2) {
    for (auto &i : v)
        printf("element: %d\n", 8);

}

so I assume I can't use C++11 functionallities with g++4.4. I have 4.4 because of compatibility with CUDA.

解决方案

This link shows you the different C++11 features supported by GCC. auto appeared in GCC 4.4.

Your real problem is probably that the ranged-based for loop appeared only in GCC 4.6.

这篇关于我可以用g ++ 4.4使用auto吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 05:01