yys

Maya插件开发,(多多练习英文吧~)

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
一下这些操作符都应该定义为全局函数,而不是CLASS的成员函数
bool operator==(CLASS const& a, CLASS const& b);
bool operator!=(CLASS const& a, CLASS const& b);
bool operator<(CLASS const& a, CLASS const& b);
bool operator>(CLASS const& a, CLASS const& b);
bool operator<=(CLASS const& a, CLASS const& b);
bool operator>=(CLASS const& a, CLASS const& b);
ostream& operator<< (ostrea& os, CLASS const& p);
void swap(CLASS& a, CLASS& b);

shared_ptr   casts:
shared_ptr<T>(static_cast<T*>(r.get()))是错误的,应该使用static_pointer_cast
shared_ptr<T>(dynamic_cast<T*>(r.get()))是错误的,应该使用dynamic_pointer_cast
shared_ptr<T>(const_cast<T*>(r.get()))是错误的,应该使用const_pointer_cast

--------------------------------
weak_ptr

enable_shared_from_this
Example:
struct X: public enable_shared_from_this<X>
{
};
int main()
{
    shared_ptr<X> p(new X);
    shared_ptr<X> q = p->shared_from_this();
    assert(p == q);
    assert(!(p < q ) && !(q < p)); // p and q share ownership
}

----------------------
3 Function objects
result_of
mem_fn
bind
is_bind_expression
is_placeholder
namespace placeholders
bad_function_call
template<class T> class function



-----------------------------------
4 Metaprogramming and type traits
-----------------------------------
5
tuple
array

undorered associative container
unsupported expressions:a == b,a != b,a < b,a > b,a <= b,a >= b
-------------------------------------------------------------------------------------------
regex 通配符

 

1.点号(.) 可以匹配任意单个字符,是单字符的通配符。

2.^匹配行的开头。

3.$匹配行的结尾。

4.()用于定义一个正则表达式匹配子元素(子表达式),可以被引用或者重复。

5.*表示前面的元素可以重复任意多次(n>=0)。

6.+表示前面的元素可以重复1次或者多次(n>=1)。

7.?表示前面的元素可以重复0次或者1次(n=0,1)。

8.{}可以手工指定元素重复的次数。{n}重复x=n次,{n,}重复x>=n次,{n,m}重复n次到m次之间的次数,即n<=x<=m。

9.[]用于定义字符集和,可以列出单个字符,也可以定义范围,或者是集合的补集。

10.\是转义字符(与c/c++类似),特定字符转义后与自身匹配。

11.|表示逻辑或的概念,匹配它两侧的元素之一。

 

 

?                当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。

.                 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
(pattern)     匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 '\(' 或 '\)'。
(?:pattern)  匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。
(?=pattern)  正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)  负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

 

 

 

 

posted on 2012-05-25 14:25  yys  阅读(853)  评论(0编辑  收藏  举报