mirror of
https://github.com/wuye9036/CppTemplateTutorial.git
synced 2024-03-22 13:11:16 +08:00
调整了行内的格式
This commit is contained in:
parent
f8a18d1db2
commit
f3e61e2012
|
@ -2683,7 +2683,7 @@ void inc_counter(T& intTypeCounter) {
|
|||
++intTypeCounter;
|
||||
}
|
||||
```
|
||||
直接告诉编译器,我们对T的要求是你得有++。
|
||||
直接告诉编译器,我们对T的要求是你得有`++`。
|
||||
|
||||
当然有人会问,那能不能直接写成以下形式,不是更简单吗
|
||||
|
||||
|
@ -2693,7 +2693,7 @@ void inc_counter(T& cnt);
|
|||
```
|
||||
|
||||
答案是不能。
|
||||
因为requires作为keyword是存在二义性的。当它用于模板函数或者模板类的声明时,它是一个constraint,后面需要跟着concept表达式;而用于concept中,则是一个required expression,用于concept的求解。既然constraint后面跟着一个concept表达式,而requires也可以用来定义一个concept expression,那么一个风骚的想法形成了:我能不能用 requires (requires (T t) {++t;}) 来约束模板函数的类型呢?
|
||||
因为`requires`作为keyword是存在二义性的。当它用于模板函数或者模板类的声明时,它是一个constraint,后面需要跟着concept表达式;而用于concept中,则是一个required expression,用于concept的求解。既然constraint后面跟着一个concept表达式,而requires也可以用来定义一个concept expression,那么一个风骚的想法形成了:我能不能用 `requires (requires (T t) {++t;})` 来约束模板函数的类型呢?
|
||||
|
||||
当然是可以的!C++就是这么的简(~~有~~)单(~~病~~)!
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user