C++17 std::variant 简单使用
std::variant应当是用来替代union来使用的,后者从C时代就有了,但是它缺乏类型安全的保障。boost库很早之前就有了实现(其实从C++11开始,感觉boost不知道多少东西被借鉴走了)。std::variant的类长这个样子:template <class... Types>class variant;Usage使用起来也是比较方便的std::variant<int
std::variant应当是用来替代union来使用的,后者从C时代就有了,但是它缺乏类型安全的保障。boost库很早之前就有了实现(其实从C++11开始,感觉boost不知道多少东西被借鉴走了)。std::variant的类长这个样子:template <class... Types>class variant;Usage使用起来也是比较方便的std::variant<int
std::generate是“遍历——执行”工具函数的一种#include <algorithm>#include <iostream>#include <string>#include <vector>int main(){ std::vector<std::string> v(4); std::generate(v.begin()
看代码说话template <typename Iterator>auto distance(Iterator begin, Iterator end) { using Traits = std::iterator_traits<Iterator>; if constexpr (std::is_base_of_v<std::random_access_iterat