I know there have already been topics on this matter but I unfortunately cannot solve my problem due to my beginner level in C++ programming. I am on OS X Maverick
on this topic: Undefined symbols for architecture x86_64 - Mavericks (Yosemite, El Capitan...)
it is mentioned that the issue of getting the 'Undefined symbols for architecture x86_64' compiling error was often solved by using the option -stdlib=libstdc++ My question is very simple: how do you use this option on Xcode? I am pretty sure it is in Build settings->Apple LLVM 5.1 - Language - C++ -> C++ Standard Library where I can choose libstdc++ instead of libc++ but I am still getting the compiling error when setting this to libstdc++.
The code I'm trying to compile is some template instantiation:
HEADER FILE (range.h)
#ifndef Proj_range_h
#define Proj_range_h
template <class Type> class Range
{
private:
    Type lo;
    Type hi;
public:
    //Constructors
    Range(); //Default constructor
    Range(const Type& low, const Type& high); //low and high value
    Range(const Range<Type>& ran2); //copy constructor
    //Destructor
    virtual ~Range();
    //Modifier functions
    void low(const Type& t1); //to set the low value
    void high(const Type& t1); //to set the high value
    //Accessing functions
    Type low() const; //lowest value in range
    Type high() const; //highest value in range
    Type spread() const; //high - low value
};
#endif
CLASS MEMBER FUNCTIONS CODING (range.cpp)
#include "range.h"
template <class Type> Range<Type>::Range(const Range<Type>& r2)
{
    //Copy constructor
    lo=r2.lo;
    hi=r2.hi;
}
template <class Type> Range<Type>::Range(const Type& low, const Type& high)
{
    lo=*low;
    hi=*high;
}
template <class Type> Type Range<Type>::spread() const
{
    return hi-lo;
}
template <class Type> Range<Type>::~Range<Type>()
{
    //Destructor
}
MAIN FILE (main.cpp)
#include "range.h"
#include <iostream>
int main()
{
    double closingPrice=40;
    double openingPrice=60;
    Range<double> bearish(closingPrice,openingPrice);
    return 0;
}
I hope my question is clear enough.
Thanks
 
    