Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
主要难点在于d+c+e,需要分类讨论重载不同的情况,为了减少重载个数用了sfinae技术,使用enable_if_t,为了防止与之后的偏特化冲突把默认返回的void改成bool然后赋值为true。重载<<运算符不知道为什么无法像重载+一样直接return,必须单独return os,会报错无法复制os,但按理说都应该是引用才对。编译使用的版本是g++ 11.2,重载输出尝试使用c++20的ranges库,但是改了cmakelist的cXX为20还是会报错,不知道为什么还不支持。