The following example will show how you can extract the read and set values from a scalar attribute. 
In the example, the attribute is a Tango::DevDouble.

Tango::DevVarDoubleArray * attr_val;
Tango::DevDouble read_value,set_value;
try {
	Tango::DeviceAttribute dev_attr =  tg_device_proxy->read_attribute("attr_name");
	dev_attr >> attr_val;
	read_value = (*attr_val)[0];
	set_value = (*attr_val)[1];
	delete attr_val;
}
catch(Tango::DevFailed &e){ 
	Tango::Except::print_exception(e);
	throw;
}	

Note: The operator >> will allocate the memory for the Tango::DevVarDoubleArray but the programmer should free this memory when the work is done with this variable.