[Bug libstdc++/83511] New: Missing default argument for basic_string_view::substr

2017-12-20 Thread kaballo86 at hotmail dot com
Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com Target Milestone: --- The following snippet results in a compilation error: std::string_view sv; sv = sv.substr(); > error: no matching function for call to >

[Bug libstdc++/83395] New: is_invocable_r fails for cv-qualified void return type

2017-12-12 Thread kaballo86 at hotmail dot com
Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com Target Milestone: --- `std::is_invocable_r` gives wrong results when used with a cv-qualified void return type: static_assert(std::is_invocable_r<void, int(*)()>:

[Bug c++/81059] New: error: assuming cast from overloaded function

2017-06-11 Thread kaballo86 at hotmail dot com
++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com Target Milestone: --- The following snippet results in a compilation error: template void fun() {} bool c = == fun; > error: assuming cast to type 'void (*)()' from overloaded funct

[Bug c++/80299] New: No ordinary unqualified lookup for operators from default template arguments

2017-04-03 Thread kaballo86 at hotmail dot com
: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com Target Milestone: --- The following snippet results in a compilation error: struct X {}; namespace ns { bool operator==(X const

[Bug c++/80077] New: constant expressions and -fno-elide-constructors

2017-03-16 Thread kaballo86 at hotmail dot com
: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com Target Milestone: --- The following snippet, extracted from libstdc++, causes the compiler to generate an error when compiled using -fno-elide-constructors under C++11/14

[Bug libstdc++/69321] New: Error on use of non-copyable type with any_cast

2016-01-16 Thread kaballo86 at hotmail dot com
: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com Target Milestone: --- The following snippet fails with an error due to use of a deleted function: #include struct noncopyable { noncopyable(noncopyable const&) = de

[Bug c++/65080] New: constexpr-ness lost by using alias in definition

2015-02-16 Thread kaballo86 at hotmail dot com
: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com In the following snippet, whether the expression `xxxint` designates a constexpr function or not depends on whether `fooT::value` is defined with an alias or not: template typename T

[Bug c++/64901] New: Overriding final function defined out of line does not lead to an error

2015-02-02 Thread kaballo86 at hotmail dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com It was reported by talin over at ##C++ that the following snippet does not result in a compilation error as expected: struct Plant { virtual

[Bug libstdc++/64781] New: regex out-of-range submatches should represent an unmatched sub-expression

2015-01-24 Thread kaballo86 at hotmail dot com
: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com The following snippet fails with a runtime assertion: #include regex #include cassert int main() { std::match_resultsconst

[Bug libstdc++/62056] Long compile times with large tuples

2014-10-05 Thread kaballo86 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62056 --- Comment #15 from Agustín Bergé kaballo86 at hotmail dot com --- (In reply to Jonathan Wakely from comment #14) Agustin, do you have a copyright assignment? I do not have one. The attached tuple is derived from libstdc++'s tuple and I have

[Bug c++/62056] Long compile times with large tuples

2014-09-30 Thread kaballo86 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62056 --- Comment #6 from Agustín Bergé kaballo86 at hotmail dot com --- (In reply to Piotr Dziwinski from comment #5) It seems the recursive version of `std::tuple` is not going to be optimized easily and the new flat implementation is the way

[Bug c++/62056] Long compile times with large tuples

2014-09-30 Thread kaballo86 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62056 --- Comment #8 from Agustín Bergé kaballo86 at hotmail dot com --- (In reply to Manuel López-Ibáñez from comment #7) (In reply to Agustín Bergé from comment #6) Well, not necessarily, It's not `std::tuple` which is at fault, but the compiler

[Bug c++/62056] Long compile times with large tuples

2014-09-30 Thread kaballo86 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62056 --- Comment #10 from Agustín Bergé kaballo86 at hotmail dot com --- (In reply to Manuel López-Ibáñez from comment #9) I cannot say if the libstdc++ implementation could be better From a compile-time performance point of view it is, check

[Bug libstdc++/62056] New: Long compile times with large tuples

2014-08-07 Thread kaballo86 at hotmail dot com
++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com Created attachment 33270 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33270action=edit draft flat tuple implementation The recursive implementation of `std::tuple` causes noticeable longer

[Bug c++/61736] New: Conditional expression yields wrong value category

2014-07-07 Thread kaballo86 at hotmail dot com
Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com The following snippet results in a compilation error: invalid initialization of non-const reference of type ‘int’ from an rvalue of type ‘int’: int* foo(){ return nullptr; } int bar

[Bug c++/61726] New: Ambiguous overload resolution with inherited op()s

2014-07-06 Thread kaballo86 at hotmail dot com
Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com The following snippet results in an ambiguous overload error: struct foo1 { void operator()(int) const {}; }; struct foo2 { void operator()(int const) const {}; }; struct bar