for (const auto& p : std::vector<int> {100, 200, 300, 400} ) {
std::cout << p << std::endl;
}
↑は通りました。

【結論】

std::vector<int> data = {1, 2, 3 ,4 , 9999999};  // ○
std::vector<int> &data = {1, 2, 3 ,4 , 9999999}; // ×
std::vector<int> {100, 200, 300, 400};    // ○, 一時オブジェクトの生成。