aschepler provides the answer but I wanted to explain what lead to the problem and show 'best practices' for delegating constructors to avoid it.
In your code you have a series of constructors, each more general than constructor they delegate to. That is you're trying to have a constructor delegate to a more specialized constructor that doesn't do everything and then you tack on a bit of work to handle the extra generality. This is backwards from what has turned out to be the most practical way of construction delegation in earlier languages that support it.
What you want instead is to have the most general constructor be the 'root' of the delegation (the 'designated initializer' or 'designated constructor', in other languages). More specialized constructors will do their work using more general constructors, passing them the data for the special case to be handled.
In your case the specialized behavior is to use default values for some members instead of taking initial values from the user. So your more specialized constructors will do their work by passing on the parameter they're given along with default values for the other members.
template<typename T>
struct A
{
typedef std::vector<T> type1;
type1 a;
type1 b;
type1 c;
A(type1 i_a, type1 i_b, type1 i_c): a(i_a), b(i_b), c(i_c) {}
A(type1 i_a, type1 i_b): A(i_a, i_b, {}) {}
A(type1 i_a): A(i_a, {}) {}
};