In reply to UVM_Xplorer:
Within UVM the typedef for uvm_active_passive_enum is declared as :
typedef enum bit { UVM_PASSIVE=0, UVM_ACTIVE=1 } uvm_active_passive_enum;
Your variable m_is_active is a bit-type i.e unsigned type with default value of 0 .
function uvm_active_passive_enum Agent::get_is_active();
if(m_is_active == -1) m_is_active = m_config.is_active;
return uvm_active_passive_enum'(m_is_active);
endfunction: get_is_active
So if condition is false and the value returned is uvm_active_passive_enum’( 0 ) i.e UVM_PASSIVE
Hence you aren’t creating Driver and Sequencer within the Agent .