This is not a duplicate of questions on template constructors or even on calling inherited template constructors.
It is specifically about calling the inherited construc
std::unique is meant to be smart pointer for ints, i.e. a replacement for int*.
std::unique
int
int*
When you use std::unique, the pointer needs to be int**.
int**
Instead of
using B = std::unique_ptr;
use
Working code (Thanks, @CompuChip): http://ideone.com/ul29vr.