On Tue, Oct 01, 2024 at 11:01:15PM +0200, Pavel Sanda wrote:
Enrico/Eugene/Stephan can you confirm you can compile and run master with the attached patch?
On cygwin compilation fails as follows: make[5]: Entering directory '/usr/local/src/lyx/lyx-devel/build-cygwin/src/support' CXX trivstring.o In file included from ../../../src/support/trivstring.cpp:13: ../../../src/support/../support/trivstring.h:41:22: error: ‘basic_string’ in namespace ‘std’ does not name a template type 41 | typedef std::basic_string<Char, std::char_traits<Char>, std::allocator<Char> > _stdstring; | ^~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:17:1: note: ‘std::basic_string’ is defined in header ‘<string>’; did you forget to ‘#include <string>’? 16 | #include <cstdlib> +++ |+#include <string> 17 | ../../../src/support/../support/trivstring.h:49:34: error: expected ‘)’ before ‘const’ 49 | trivial_string(_stdstring const & that); | ~ ^~~~~~ | ) ../../../src/support/../support/trivstring.h:55:36: error: ‘_stdstring’ has not been declared 55 | trivial_string & operator=(_stdstring const & that); | ^~~~~~~~~~ ../../../src/support/../support/trivstring.h:67:18: error: expected type-specifier before ‘_stdstring’ 67 | operator _stdstring() const; | ^~~~~~~~~~ ../../../src/support/../support/trivstring.h:65:58: error: ‘_stdstring’ has not been declared 65 | trivial_string substr(size_t pos = 0, size_t n = _stdstring::npos) const; | ^~~~~~~~~~ ../../../src/support/../support/trivstring.h:107:6: error: ‘basic_ostream’ in namespace ‘std’ does not name a template type 107 | std::basic_ostream<Char, std::char_traits<Char> > & | ^~~~~~~~~~~~~ ../../../src/support/trivstring.cpp:58:10: error: template-id ‘__ct <>’ for ‘lyx::trivial_string<char>::trivial_string(const std::string&)’ does not match any template declaration 58 | template trivial_string<char>::trivial_string(string const &); | ^~~~~~~~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidates are: ‘lyx::trivial_string<Char>::trivial_string(const Char*, size_t) [with Char = char; size_t = long unsigned int]’ 47 | trivial_string(Char const * that, size_t n); | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:45:9: note: ‘lyx::trivial_string<Char>::trivial_string(const lyx::trivial_string<Char>&) [with Char = char]’ 45 | trivial_string(trivial_string const & that); | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:43:9: note: ‘lyx::trivial_string<Char>::trivial_string() [with Char = char]’ 43 | trivial_string() : size_(0), data_(0) {} | ^~~~~~~~~~~~~~ ../../../src/support/trivstring.cpp:59:10: error: template-id ‘__ct <>’ for ‘lyx::trivial_string<unsigned int>::trivial_string(const lyx::docstring&)’ does not match any template declaration 59 | template trivial_string<char_type>::trivial_string(docstring const &); | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidates are: ‘lyx::trivial_string<Char>::trivial_string(const Char*, size_t) [with Char = unsigned int; size_t = long unsigned int]’ 47 | trivial_string(Char const * that, size_t n); | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:45:9: note: ‘lyx::trivial_string<Char>::trivial_string(const lyx::trivial_string<Char>&) [with Char = unsigned int]’ 45 | trivial_string(trivial_string const & that); | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:43:9: note: ‘lyx::trivial_string<Char>::trivial_string() [with Char = unsigned int]’ 43 | trivial_string() : size_(0), data_(0) {} | ^~~~~~~~~~~~~~ ../../../src/support/trivstring.cpp:61:37: error: expected constructor, destructor, or type conversion before ‘(’ token 61 | trivial_string<Char>::trivial_string(_stdstring const & that) | ^ ../../../src/support/trivstring.cpp:104:1: error: template-id ‘operator=<>’ for ‘lyx::trivial_string<char>& lyx::trivial_string<char>::operator=(const std::string&)’ does not match any template declaration 104 | trivial_string<char>::operator=(string const &); | ^~~~~~~~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:55:26: note: candidates are: ‘lyx::trivial_string<Char>& lyx::trivial_string<Char>::operator=(const int&) [with Char = char]’ 55 | trivial_string & operator=(_stdstring const & that); | ^~~~~~~~ ../../../src/support/../support/trivstring.h:53:26: note: ‘lyx::trivial_string<Char>& lyx::trivial_string<Char>::operator=(const lyx::trivial_string<Char>&) [with Char = char]’ 53 | trivial_string & operator=(trivial_string const & that); | ^~~~~~~~ ../../../src/support/trivstring.cpp:106:1: error: template-id ‘operator=<>’ for ‘lyx::trivial_string<unsigned int>& lyx::trivial_string<unsigned int>::operator=(const lyx::docstring&)’ does not match any template declaration 106 | trivial_string<char_type>::operator=(docstring const &); | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:55:26: note: candidates are: ‘lyx::trivial_string<Char>& lyx::trivial_string<Char>::operator=(const int&) [with Char = unsigned int]’ 55 | trivial_string & operator=(_stdstring const & that); | ^~~~~~~~ ../../../src/support/../support/trivstring.h:53:26: note: ‘lyx::trivial_string<Char>& lyx::trivial_string<Char>::operator=(const lyx::trivial_string<Char>&) [with Char = unsigned int]’ 53 | trivial_string & operator=(trivial_string const & that); | ^~~~~~~~ ../../../src/support/trivstring.cpp:109:1: error: declaration of ‘operator=’ as non-function 109 | trivial_string<Char>::operator=(_stdstring const & that) | ^~~~~~~~~~~~~~~~~~~~ ../../../src/support/trivstring.cpp:109:33: error: ‘_stdstring’ was not declared in this scope 109 | trivial_string<Char>::operator=(_stdstring const & that) | ^~~~~~~~~~ ../../../src/support/trivstring.cpp: In member function ‘lyx::trivial_string<Char> lyx::trivial_string<Char>::substr(size_t, size_t) const’: ../../../src/support/trivstring.cpp:168:18: error: ‘_stdstring’ has not been declared 168 | if (n == _stdstring::npos) | ^~~~~~~~~~ ../../../src/support/trivstring.cpp: At global scope: ../../../src/support/trivstring.cpp:175:50: error: no member function ‘operator std::string’ declared in ‘lyx::trivial_string<char>’ 175 | template trivial_string<char>::operator string() const; | ^~~~~ ../../../src/support/trivstring.cpp:176:58: error: no member function ‘operator lyx::docstring’ declared in ‘lyx::trivial_string<unsigned int>’ 176 | template trivial_string<char_type>::operator docstring() const; | ^~~~~ ../../../src/support/trivstring.cpp:178:32: error: expected type-specifier before ‘_stdstring’ 178 | trivial_string<Char>::operator _stdstring() const | ^~~~~~~~~~ ../../../src/support/trivstring.cpp:251:20: error: template-id ‘operator<< <>’ for ‘std::ostream& lyx::operator<<(std::ostream&, const trivial_string<char>&)’ does not match any template declaration 251 | template ostream & operator<<(ostream &, trivial_string<char> const &); | ^~~~~~~~ In file included from ../../../src/support/trivstring.cpp:14: ../../../src/support/../support/docstring.h:59:21: note: candidate is: ‘lyx::odocstream& lyx::operator<<(odocstream&, char)’ 59 | extern odocstream & operator<<(odocstream &, char); | ^~~~~~~~ ../../../src/support/trivstring.cpp:252:23: error: template-id ‘operator<< <>’ for ‘lyx::odocstream& lyx::operator<<(odocstream&, const trivial_string<unsigned int>&)’ does not match any template declaration 252 | template odocstream & operator<<(odocstream &, trivial_string<char_type> const &); | ^~~~~~~~ ../../../src/support/../support/docstring.h:59:21: note: candidate is: ‘lyx::odocstream& lyx::operator<<(odocstream&, char)’ 59 | extern odocstream & operator<<(odocstream &, char); | ^~~~~~~~ ../../../src/support/trivstring.cpp: In instantiation of ‘bool lyx::operator==(const trivial_string<Char>&, const Char*) [with Char = char]’: ../../../src/support/trivstring.cpp:233:68: required from here ../../../src/support/trivstring.cpp:238:28: error: no matching function for call to ‘lyx::trivial_string<char>::trivial_string(const char*&)’ 238 | return lhs.compare(trivial_string<Char>(rhs)) == 0; | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidate: ‘lyx::trivial_string<Char>::trivial_string(const Char*, size_t) [with Char = char; size_t = long unsigned int]’ 47 | trivial_string(Char const * that, size_t n); | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidate expects 2 arguments, 1 provided ../../../src/support/trivstring.cpp:27:1: note: candidate: ‘lyx::trivial_string<Char>::trivial_string(const lyx::trivial_string<Char>&) [with Char = char]’ 27 | trivial_string<Char>::trivial_string(trivial_string const & that) : size_(that.size_) | ^~~~~~~~~~~~~~~~~~~~ ../../../src/support/trivstring.cpp:27:61: note: no known conversion for argument 1 from ‘const char*’ to ‘const lyx::trivial_string<char>&’ 27 | trivial_string<Char>::trivial_string(trivial_string const & that) : size_(that.size_) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/support/../support/trivstring.h:43:9: note: candidate: ‘lyx::trivial_string<Char>::trivial_string() [with Char = char]’ 43 | trivial_string() : size_(0), data_(0) {} | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:43:9: note: candidate expects 0 arguments, 1 provided ../../../src/support/trivstring.cpp: In instantiation of ‘bool lyx::operator==(const trivial_string<Char>&, const Char*) [with Char = unsigned int]’: ../../../src/support/trivstring.cpp:234:78: required from here ../../../src/support/trivstring.cpp:238:28: error: no matching function for call to ‘lyx::trivial_string<unsigned int>::trivial_string(const unsigned int*&)’ 238 | return lhs.compare(trivial_string<Char>(rhs)) == 0; | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidate: ‘lyx::trivial_string<Char>::trivial_string(const Char*, size_t) [with Char = unsigned int; size_t = long unsigned int]’ 47 | trivial_string(Char const * that, size_t n); | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidate expects 2 arguments, 1 provided ../../../src/support/trivstring.cpp:27:1: note: candidate: ‘lyx::trivial_string<Char>::trivial_string(const lyx::trivial_string<Char>&) [with Char = unsigned int]’ 27 | trivial_string<Char>::trivial_string(trivial_string const & that) : size_(that.size_) | ^~~~~~~~~~~~~~~~~~~~ ../../../src/support/trivstring.cpp:27:61: note: no known conversion for argument 1 from ‘const unsigned int*’ to ‘const lyx::trivial_string<unsigned int>&’ 27 | trivial_string<Char>::trivial_string(trivial_string const & that) : size_(that.size_) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/support/../support/trivstring.h:43:9: note: candidate: ‘lyx::trivial_string<Char>::trivial_string() [with Char = unsigned int]’ 43 | trivial_string() : size_(0), data_(0) {} | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:43:9: note: candidate expects 0 arguments, 1 provided ../../../src/support/trivstring.cpp: In instantiation of ‘bool lyx::operator==(const Char*, const trivial_string<Char>&) [with Char = char]’: ../../../src/support/trivstring.cpp:242:68: required from here ../../../src/support/trivstring.cpp:247:28: error: no matching function for call to ‘lyx::trivial_string<char>::trivial_string(const char*&)’ 247 | return rhs.compare(trivial_string<Char>(lhs)) == 0; | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidate: ‘lyx::trivial_string<Char>::trivial_string(const Char*, size_t) [with Char = char; size_t = long unsigned int]’ 47 | trivial_string(Char const * that, size_t n); | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidate expects 2 arguments, 1 provided ../../../src/support/trivstring.cpp:27:1: note: candidate: ‘lyx::trivial_string<Char>::trivial_string(const lyx::trivial_string<Char>&) [with Char = char]’ 27 | trivial_string<Char>::trivial_string(trivial_string const & that) : size_(that.size_) | ^~~~~~~~~~~~~~~~~~~~ ../../../src/support/trivstring.cpp:27:61: note: no known conversion for argument 1 from ‘const char*’ to ‘const lyx::trivial_string<char>&’ 27 | trivial_string<Char>::trivial_string(trivial_string const & that) : size_(that.size_) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/support/../support/trivstring.h:43:9: note: candidate: ‘lyx::trivial_string<Char>::trivial_string() [with Char = char]’ 43 | trivial_string() : size_(0), data_(0) {} | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:43:9: note: candidate expects 0 arguments, 1 provided ../../../src/support/trivstring.cpp: In instantiation of ‘bool lyx::operator==(const Char*, const trivial_string<Char>&) [with Char = unsigned int]’: ../../../src/support/trivstring.cpp:243:78: required from here ../../../src/support/trivstring.cpp:247:28: error: no matching function for call to ‘lyx::trivial_string<unsigned int>::trivial_string(const unsigned int*&)’ 247 | return rhs.compare(trivial_string<Char>(lhs)) == 0; | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidate: ‘lyx::trivial_string<Char>::trivial_string(const Char*, size_t) [with Char = unsigned int; size_t = long unsigned int]’ 47 | trivial_string(Char const * that, size_t n); | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:47:9: note: candidate expects 2 arguments, 1 provided ../../../src/support/trivstring.cpp:27:1: note: candidate: ‘lyx::trivial_string<Char>::trivial_string(const lyx::trivial_string<Char>&) [with Char = unsigned int]’ 27 | trivial_string<Char>::trivial_string(trivial_string const & that) : size_(that.size_) | ^~~~~~~~~~~~~~~~~~~~ ../../../src/support/trivstring.cpp:27:61: note: no known conversion for argument 1 from ‘const unsigned int*’ to ‘const lyx::trivial_string<unsigned int>&’ 27 | trivial_string<Char>::trivial_string(trivial_string const & that) : size_(that.size_) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~ ../../../src/support/../support/trivstring.h:43:9: note: candidate: ‘lyx::trivial_string<Char>::trivial_string() [with Char = unsigned int]’ 43 | trivial_string() : size_(0), data_(0) {} | ^~~~~~~~~~~~~~ ../../../src/support/../support/trivstring.h:43:9: note: candidate expects 0 arguments, 1 provided make[5]: *** [Makefile:948: trivstring.o] Error 1 make[5]: Leaving directory '/usr/local/src/lyx/lyx-devel/build-cygwin/src/support' make[4]: *** [Makefile:798: all] Error 2 make[4]: Leaving directory '/usr/local/src/lyx/lyx-devel/build-cygwin/src/support' make[3]: *** [Makefile:2397: all-recursive] Error 1 make[3]: Leaving directory '/usr/local/src/lyx/lyx-devel/build-cygwin/src' make[2]: *** [Makefile:1495: all] Error 2 make[2]: Leaving directory '/usr/local/src/lyx/lyx-devel/build-cygwin/src' make[1]: *** [Makefile:568: all-recursive] Error 1 make[1]: Leaving directory '/usr/local/src/lyx/lyx-devel/build-cygwin' make: *** [Makefile:462: all] Error 2 -- Enrico -- lyx-devel mailing list lyx-devel@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-devel