Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-9841

Build Error: ‘string_view’ in namespace ‘std’ does not name a type

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 6.14/06, 6.14/08
    • 6.16/00, 6.18/00
    • Core Libraries
    • None
    • ArchLinux x86_64, GCC 8.2.1, -std=c++17

    Description

      When RConfigure.in is run it results in wrongs flags being set in RConfigure.h:

      ...
      #define R__HAS_STD_STRING_VIEW   /**/
      #define R__HAS_STD_EXPERIMENTAL_STRING_VIEW   /**/
      ...
      

      Only one of these should be set, as both being set results in RStingView.hxx selecting the wrong header - <experimental/string_view>, whereas it should select <string_view>. Resulting error is here:

      In file included from /build/root-extra/src/build/include/TString.h:28,
                       from /build/root-extra/src/build/include/TDataSetManager.h:26,
                       from /build/root-extra/src/build/include/TDataSetManagerFile.h:24,
                       from /build/root-extra/src/build/proof/afdsmgrd/afdsmgrd/src/afDataSetList.h:22,
                       from /build/root-extra/src/build/proof/afdsmgrd/afdsmgrd/src/afDataSetList.cc:9:
      /build/root-extra/src/build/include/ROOT/RStringView.hxx:67:17: error: expected type-specifier
              operator std::string_view() const { return std::string_view(fData,fLength); }
                       ^~~
      In file included from /build/root-extra/src/build/include/TDataSetManager.h:26,
                       from /build/root-extra/src/build/include/TDataSetManagerFile.h:24,
                       from /build/root-extra/src/build/proof/afdsmgrd/afdsmgrd/src/afDataSetList.h:22,
                       from /build/root-extra/src/build/proof/afdsmgrd/afdsmgrd/src/afDataSetList.cc:9:
      /build/root-extra/src/build/include/TString.h:110:13: error: expected type-specifier
          operator std::string_view() const { return std::string_view(Data(),fExtent); }
                   ^~~
      /build/root-extra/src/build/include/TString.h:275:23: error: ‘string_view’ in namespace ‘std’ does not name a type
          TString(const std::string_view &sub);
                             ^~~~~~~~~~~
      /build/root-extra/src/build/include/TString.h:275:18: note: ‘std::string_view’ is only available from C++17 onwards
          TString(const std::string_view &sub);
                        ^~~
      /build/root-extra/src/build/include/TString.h:312:37: error: ‘string_view’ in namespace ‘std’ does not name a type
          TString    &operator=(const std::string_view &s);
                                           ^~~~~~~~~~~
      /build/root-extra/src/build/include/TString.h:312:32: note: ‘std::string_view’ is only available from C++17 onwards
          TString    &operator=(const std::string_view &s);
                                      ^~~
      /build/root-extra/src/build/include/TString.h:439:9: error: ‘string_view’ in namespace ‘std’ does not name a type
          std::string_view View() const { return std::string_view(GetPointer(),Length()); }
               ^~~~~~~~~~~
      /build/root-extra/src/build/include/TString.h:439:4: note: ‘std::string_view’ is only available from C++17 onwards
          std::string_view View() const { return std::string_view(GetPointer(),Length()); }
          ^~~
      In file included from /build/root-extra/src/build/include/TDataSetManager.h:26,
                       from /build/root-extra/src/build/include/TDataSetManagerFile.h:24,
                       from /build/root-extra/src/build/proof/afdsmgrd/afdsmgrd/src/afDataSetList.h:22,
                       from /build/root-extra/src/build/proof/afdsmgrd/afdsmgrd/src/afDataSetList.cc:9:
      /build/root-extra/src/build/include/TString.h:834:53: error: ‘string_view’ in namespace ‘std’ does not name a type
       inline Bool_t operator==(const char *s1, const std::string_view &s2)
                                                           ^~~~~~~~~~~
      /build/root-extra/src/build/include/TString.h:834:48: note: ‘std::string_view’ is only available from C++17 onwards
       inline Bool_t operator==(const char *s1, const std::string_view &s2)
                                                      ^~~
      /build/root-extra/src/build/include/TString.h:834:68: error: ‘Bool_t operator==(const char*, const int&)’ must have an argument of class or enumerated type
       inline Bool_t operator==(const char *s1, const std::string_view &s2)
                                                                          ^
      /build/root-extra/src/build/include/TString.h:839:37: error: ‘string_view’ in namespace ‘std’ does not name a type
       inline Bool_t operator==(const std::string_view &s1, const char *s2)
                                           ^~~~~~~~~~~
      /build/root-extra/src/build/include/TString.h:839:32: note: ‘std::string_view’ is only available from C++17 onwards
       inline Bool_t operator==(const std::string_view &s1, const char *s2)
                                      ^~~
      /build/root-extra/src/build/include/TString.h:839:68: error: ‘Bool_t operator==(const int&, const char*)’ must have an argument of class or enumerated type
       inline Bool_t operator==(const std::string_view &s1, const char *s2)
                                                                          ^
      /build/root-extra/src/build/include/TString.h:852:37: error: ‘string_view’ in namespace ‘std’ does not name a type
         std::string printValue(const std::string_view* val);
                                           ^~~~~~~~~~~
      /build/root-extra/src/build/include/TString.h:852:32: note: ‘std::string_view’ is only available from C++17 onwards
         std::string printValue(const std::string_view* val);
                                      ^~~
      

      Attachments

        Activity

          People

            axel Axel Naumann
            kgizdov Konstantin Gizdov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              Actual End: