cessando variáveis de ambiente em C ++

Gostaria de ter acesso ao$HOME variável de ambiente em um programa C ++ que estou escrevendo. Se eu estivesse escrevendo código em C, usaria ogetenv(), mas eu queria saber se havia uma maneira melhor de fazê-lo. Aqui está o código que eu tenho até agora:

std::string get_env_var( std::string const & key ) {                                 
    char * val;                                                                        
    val = getenv( key.c_str() );                                                       
    std::string retval = "";                                                           
    if (val != NULL) {                                                                 
        retval = val;                                                                    
    }                                                                                  
    return retval;                                                                        
}           

Devo usargetenv() para acessar variáveis de ambiente em C ++? É provável que haja algum problema que eu possa evitar com um pouco de conhecimento?

questionAnswers(4)

yourAnswerToTheQuestion