Дело в том, что с у тебя это не получится даже с обчными массивами
Same* tex[];// и откуда компилятору взять размер? орать будет прямо тут
Далее зачем ты хочешь получить shared_array указателей на Same?
у тебя при уничтожении shared_array поудаются только указатели, а память с элементами Same останется
если есть не приодалимое желанье засунуть в shared_array массив указателей то вероятно лучше сделать так
boost::shared_array<boost::scoped_ptr<Same> > tex;
tex.reset(new boost::scoped_ptr<Same>[10]);
tex[0].reset(new Same(10,10));
tex[1].reset(new Same(20,22));
тогда при уничтожении tex у тебя начнут разрушаться scoped_ptr которые в свою очередь разрушат Same.