pedrorissato
(usa Fedora)
Enviado em 24/01/2014 - 08:58h
Vamos tentar ajudar! xD
Não sei qual o seu nível de programação, mas ainda que seja alto, algumas referentes valem a pena. xD
Em relação ao C/C++ existiram diversas revisões da linguagem durante os anos, alterando sintaxes, incluindo melhorias, etc... As principais revisões foram C89 (ou conhecida também como C90), C99 e a "mais recente" C11... basicamente fazem referente aos anos de "reconhecimento" e implementação das revisões, 1989, 1999 e 2011....
Sabendo disto, o compilador pode receber como parâmetro na compilação, com qual revisão da linguagem C você gostaria de compilar aquele fonte.
Neste caso basta adicionar ao gcc na hora da compilação, o parâmetro:
-std=c++11 ou -std=gnu++11
http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
No site acima, você checa as implementações da revisão C11.
Lembrando que a implementação dependerá, logicamente, da versão do GCC que está rodando. Para C11 é necessário no mínimo GCC 4.8
Lembrete! Alterando a revisão, pode ser necessário alterar a sintaxe da função, já a sintaxe padrão também pode ter sido alterada.
No link abaixo, você encontra mais sobre membros não-estáticos:
http://en.cppreference.com/w/cpp/language/data_members
Pelo que vi na revisão C11, foi implementado o suporte a membros não estáticos de uma classe, o que faz com que o C/C++ possam trabalhar melhor com a realocação de memória das variáveis dentro de classes.
Espero ter contribuído com algo! Teste ambas as hipóteses, sem o parâmetro da revisão e com o parâmetro C11 e veja quais as diferenciações. xD