use initialization_list to generate StringVector
use std::remove_pointer