I am looking at two source codes. One uses this:
using boost::property_tree::ptree;
And the other uses this:
namespace ptree = boost::property_tree::ptree;
What is the difference?
I am looking at two source codes. One uses this:
using boost::property_tree::ptree;
And the other uses this:
namespace ptree = boost::property_tree::ptree;
What is the difference?
With
using boost::property_tree::ptree;
you pull in the boost::property_tree::ptree class into the current namespace. From that point onward you can use ptree instead of boost::property_tree::ptree.
With
namespace ptree = boost::property_tree::ptree;
you should have an error since boost::property_tree::ptree is a class and not a namespace. Otherwise (if it were a namespace) it would create an alias for the namespace (like how pt is used in the Boost property tree tutorials).
 
    
    The using statement brings a namespace into scope. The namespace statement defines an alias (to use it you would have to access it with the :: operator).
EDIT: See programmer dude's answer for the correct answer.
