#include <tuple>
#include <set>

struct pointsSet {
	double p1;
	double p2;
	double p3;
};

bool operator<(const pointsSet& lhs, const pointsSet& rhs)
{
    return std::tie(lhs.p1, lhs.p2, lhs.p3) < std::tie(rhs.p1, rhs.p2, rhs.p3);
}

void foo()
{
    std::set<pointsSet> setBoundaryPoints;

    double p[3] = {1,2,3};
    pointsSet pt = {p[0], p[1], p[2]};
    setBoundaryPoints.insert(pt);

}

int main()
{
    foo();
}