Comment utiliser boost::array avec des inconnus de la taille de l'objet à la variable

J'aimerais utiliser boost::array comme un membre de la classe, mais je ne sais pas la taille au moment de la compilation.
J'ai pensé à quelque chose comme ça, mais il ne fonctionne pas:

int main() {
    boost::array<int, 4> array = {{1,2,3,4}};
    MyClass obj(array);
}

class MyClass {
    private:
        boost::array<int, std::size_t> array;
    public:
        template<std::size_t N> MyClass(boost::array<int, N> array)
        : array(array) {};
};

Le compilateur gcc, dit:

error: type/value mismatch at argument 2 in template parameter list for
  template<class _Tp, long unsigned int _Nm> struct boost::array
error:   expected a constant of type long unsigned int’, got size_t

Qui signifie évidemment que l'on ne peut pas utiliser de taille variable tableaux en tant que membres de la classe. Si oui, cela irait à l'encontre de tous les avantages de boost::array vecteurs standard ou des tableaux.

Pouvez-vous me montrer ce que je fait de mal?