read número delimitado por espaço do arquivo até o caractere de nova linha

Tenho um arquivo de texto que contém os seguintes dado

A primeira linha é esta:

5 4 3 2 1

A segunda linha é esta:

1 2 3 4 5

Estou tentando ler dados de uma linha por vez, porque meu primeiro objeto de lista vinculada usará os dados da primeira linha e meu segundo objeto de lista vinculada usará dados da segunda linha. O melhor que pude apresentar é a seguinte função:

void polynomial::allocate_poly(std::ifstream& in, const char* file, const char* number)
{

    in.open(file);

    std::string str;
    char b;
    int m = 0;

    for(int i = 0; !in.eof(); ++i)
    {
        in >> b;
        m = b - '0';
        a.insert(m);
    }

Existem alguns problemas com essa abordagem. Eu tentei diferentes operadores binários no meu loop for comob == '\n' e nenhum deles parece acionar quando b é um caractere de nova linh

Alocar também os números do arquivo da seguinte maneir5 5 4 3 2 1 1 2 3 4 5, parece estar copiando um extra de 5 em algum lugar, não tenho certeza se esse é o bit Eof ou nã

Também tentei usar a função getline, mas por algum motivo, parece copiar apenas o primeiro número inteiro e depois despeja o restante do arquivo. Sei que certamente não o estou usando corretamente, mas todos os exemplos que posso encontrar são para digitar o nome do arquivo comocin.getline e quero poder passar meu nome de arquivo como um argumento de linha de comando ao executar o program

Minha pergunta é como posso alocar os números na primeira linha até o caractere de nova linha e depois passar oifstream in variável para outro objeto para alocar a segunda linha? Obrigado pela ajuda