小编Nik*_*lic的帖子

std::optional 如何从初始值设定项列表中构造 std::variant ?

#include <optional>
#include <variant>
#include <utility>
#include <set>

int main()
{
    std::optional<std::variant<std::pair<int, int>, std::set<int>>> foo(std::in_place, {1, 4});
}
Run Code Online (Sandbox Code Playgroud)
  1. 这编译。但是,当std::variant 没有构造函数std::initializer_list<T>作为其第一个参数,而这个构造函数重载std::optional所做的只是传递初始化列表并将其他参数转发给内部类型构造函数时,这怎么可能呢?
  2. std::variant现在持有哪种类型,std::set还是std::pair

c++ c++17

6
推荐指数
1
解决办法
179
查看次数

标签 统计

c++ ×1

c++17 ×1