#define STL_REQUIRES( type_var, concept) \
do { \
void (* x)( type_var ) = concept##_concept_specification<
type_var >\
:: concept##_requirement_violation; __x = __x; } while (0)
于是就搜到了这个博客: http://saturnman.blog.163.com/blog/static/557611201111543620928/
__x = __x如何理解,这个一开始我也没有搞清楚,后来在网上找到了答案,这个是强行触发对类静态模版函数的实例化,如果不写上这名,类模版不会被实例化,其中的代码也不会被语法检查。我们所有的工作就都白费了。这也是推迟实例化的结果与避免它的方法/
可是还不理解? 为什么__x=__x 这个指针赋值一下,就能触发对类静态模版函数的实例化??