Skip to content

Commit

Permalink
fix(example): c++14 limitation (#19292)
Browse files Browse the repository at this point in the history
fix the bug:

```shell
‘std::string_view’ is only available from C++17 onwards
```

The error occurs because the code is being compiled using the C++14 standard, which does not include the std::string_view type introduced in C++17. The Abseil library (absl), used by Protocol Buffers, includes absl/strings/string_view.h, which uses std::string_view. This causes the compilation to fail in environments configured with C++14 or earlier.

In the provided build system, the file add_person.cc is being compiled using the -std=c++14 flag, which is incompatible with code depending on features from C++17 (e.g., std::string_view).

Closes #19292

COPYBARA_INTEGRATE_REVIEW=#19292 from Kaikaikaifang:patch-1 ee276ff
PiperOrigin-RevId: 698223950
  • Loading branch information
Kaikaikaifang authored and copybara-github committed Nov 20, 2024
1 parent d3e9897 commit 3ba0709
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions examples/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@ protoc_middleman_ruby: addressbook.proto

add_person_cpp: add_person.cc protoc_middleman
pkg-config --cflags protobuf # fails if protobuf is not installed
c++ -std=c++14 add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`
c++ add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`

list_people_cpp: list_people.cc protoc_middleman
pkg-config --cflags protobuf # fails if protobuf is not installed
c++ -std=c++14 list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`
c++ list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`

add_person_dart: add_person.dart protoc_middleman_dart

Expand Down

0 comments on commit 3ba0709

Please sign in to comment.