O C ++ 11 não é um compilador, mas um padrão ISO implementado por um número de compiladores populares. O compilador C ++ padrão no Ubuntu é g++
da coleção de compiladores GNU. Como você mencionou na sua pergunta, o sinal -std=c++11
habilita os recursos do C ++ 11 em g++
, bem como o Clang, outro compilador C ++ disponível no Ubuntu.
A mensagem de erro que você vê é mostrada quando o suporte ao C ++ 11 não está habilitado ou não é suportado pelo seu compilador. O GCC 4.6 foi a primeira versão a suportar nullptr
, portanto, se você estiver usando uma versão anterior, não poderá usar nullptr
. Use g++ --version
para obter a versão instalada.
Supondo que você esteja usando pelo menos o GCC 4.6, você precisará determinar por que seu sistema de compilação não está passando os sinalizadores corretos para o compilador. No CMake, por exemplo, você precisará usar:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")