我正在尝试从书中汇编示例问题。
在系统上编译时出现错误,因此我尝试了一个在线编译器,并且可以正常工作。我将g ++更新为版本9,然后再次尝试,但仍无法编译。
我收到错误'std::string_view' has not been declared
。
// Sorting words recursively
#include <iostream>
#include <iomanip>
#include <memory>
#include <string>
#include <string_view>
#include <vector>
using Words = std::vector<std::shared_ptr<std::string>>;
// Function prototypes
void swap(Words& words, size_t first, size_t second);
void sort(Words& words);
void sort(Words& words, size_t start, size_t end);
void extract_words(Words& words, std::string_view text, std::string_view separators);
void show_words(const Words& words);
size_t max_word_length(const Words& words);
extract_words
原型中发生第一个错误,此后使用text
参数或任何使用std::string_view
的所有尝试都会导致错误。
答案 0 :(得分:4)
如cppreference.com中所述,std::string_view
仅在c ++ 17或更高版本中可用。
为了使用它,请在您的编译器中启用它。对于g ++或clang ++,请使用开关-std=c++17