QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#597544 | #9347. Competition in Swiss-system | MaMengQi | Compile Error | / | / | C++20 | 3.2kb | 2024-09-28 17:59:41 | 2024-09-28 17:59:45 |
Due to the privacy settings of the submitter, you are not allowed to view this code.
详细
answer.code: In member function ‘constexpr fact fact::operator+(const fact&) const’: answer.code:35:20: warning: invalid return type ‘fact’ of ‘constexpr’ function ‘constexpr fact fact::operator+(const fact&) const’ [-Winvalid-constexpr] 35 | constexpr fact operator+(const fact &o) const { return fact(p * o.q + q * o.p, q * o.q); } | ^~~~~~~~ answer.code:26:8: note: ‘fact’ is not literal because: 26 | struct fact | ^~~~ answer.code:26:8: note: ‘fact’ is not an aggregate, does not have a trivial default constructor, and has no ‘constexpr’ constructor that is not a copy or move constructor answer.code: In member function ‘constexpr fact fact::operator-(const fact&) const’: answer.code:36:20: warning: invalid return type ‘fact’ of ‘constexpr’ function ‘constexpr fact fact::operator-(const fact&) const’ [-Winvalid-constexpr] 36 | constexpr fact operator-(const fact &o) const { return fact(p * o.q - q * o.p, q * o.q); } | ^~~~~~~~ answer.code: In member function ‘constexpr fact fact::operator*(const fact&) const’: answer.code:37:20: warning: invalid return type ‘fact’ of ‘constexpr’ function ‘constexpr fact fact::operator*(const fact&) const’ [-Winvalid-constexpr] 37 | constexpr fact operator*(const fact &o) const { return fact(p * o.p, q * o.q); } | ^~~~~~~~ answer.code: In member function ‘constexpr fact fact::operator/(const fact&) const’: answer.code:38:20: warning: invalid return type ‘fact’ of ‘constexpr’ function ‘constexpr fact fact::operator/(const fact&) const’ [-Winvalid-constexpr] 38 | constexpr fact operator/(const fact &o) const { return fact(p * o.q, q * o.p); } | ^~~~~~~~ answer.code: In member function ‘constexpr fact& fact::operator+=(const fact&)’: answer.code:39:70: warning: temporary of non-literal type ‘fact’ in a constant expression [-Winvalid-constexpr] 39 | constexpr fact& operator+=(const fact &o) { return *this = *this + o; } | ~~~~~~^~~ answer.code: In member function ‘constexpr fact& fact::operator-=(const fact&)’: answer.code:40:70: warning: temporary of non-literal type ‘fact’ in a constant expression [-Winvalid-constexpr] 40 | constexpr fact& operator-=(const fact &o) { return *this = *this - o; } | ~~~~~~^~~ answer.code: In member function ‘constexpr fact& fact::operator*=(const fact&)’: answer.code:41:70: warning: temporary of non-literal type ‘fact’ in a constant expression [-Winvalid-constexpr] 41 | constexpr fact& operator*=(const fact &o) { return *this = *this * o; } | ~~~~~~^~~ answer.code: In member function ‘constexpr fact& fact::operator/=(const fact&)’: answer.code:42:70: warning: temporary of non-literal type ‘fact’ in a constant expression [-Winvalid-constexpr] 42 | constexpr fact& operator/=(const fact &o) { return *this = *this / o; } | ~~~~~~^~~ In file included from /usr/include/c++/13/algorithm:60, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51, from answer.code:1: /usr/include/c++/13/bits/stl_algobase.h: In instantiation of ‘constexpr const _Tp& std::max(const _Tp&, const _Tp&) [with _Tp = fact]’: answer.code:100:69: required from here /usr/include/c++/13/bits/stl_algobase.h:262:15: error: no match for ‘operator<’ (operand types are ‘const fact’ and ‘const fact’) 262 | if (__a < __b) | ~~~~^~~~~ answer.code:43:20: note: candidate: ‘constexpr auto fact::operator<=>(const fact&)’ (near match) 43 | constexpr auto operator<=>(const fact &o) { return p * o.q <=> q * o.p; } | ^~~~~~~~ answer.code:43:20: note: passing ‘const fact*’ as ‘this’ argument discards qualifiers In file included from /usr/include/c++/13/bits/stl_algobase.h:67: /usr/include/c++/13/bits/stl_iterator.h:583:5: note: candidate: ‘template<class _IteratorL, class _IteratorR> requires three_way_comparable_with<_IteratorR, _IteratorL, std::partial_ordering> constexpr std::compare_three_way_result_t<_IteratorL, _IteratorR> std::operator<=>(const reverse_iterator<_IteratorL>&, const reverse_iterator<_IteratorR>&)’ (reversed) 583 | operator<=>(const reverse_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/13/bits/stl_iterator.h:583:5: note: template argument deduction/substitution failed: /usr/include/c++/13/bits/stl_algobase.h:262:15: note: ‘const fact’ is not derived from ‘const std::reverse_iterator<_IteratorL>’ 262 | if (__a < __b) | ~~~~^~~~~ /usr/include/c++/13/bits/stl_iterator.h:1690:5: note: candidate: ‘template<class _IteratorL, class _IteratorR> requires three_way_comparable_with<_IteratorR, _Ite...