sgi stl config h 各種巨集的含義

2021-04-22 23:21:40 字數 1757 閱讀 9356

stl_config.h  

由於不同的編譯環境對標準c++的支援不完全相同,出於移植性的考慮,sgi   stl定義了這個檔案。它通過條件編譯針對不同的編譯器作了部分常數設定,對編譯器的設定如下:  

1)   如果沒有定義bool,true,false,定義   __stl_need_bool。  

2)   如果不支援drand48(採用了48bit計算,產生雙精度的偽隨機數),定義   __stl_no_drand48。  

3)   如果不支援類模板的靜態成員,定義   __stl_static_template_member_bug。  

4)   如果不支援關鍵字typename,定義typename為乙個空巨集(null   macro)。  

5)   如果支援類模板區域性特殊化(partial   specialization   of   class   templates),定義   __stl_class_partial_specialization。  

6)   如果支援函式模板區域性特殊化(partial   specialization   of   function   templates),定義   defines   __stl_function_tmpl_partial_order。  

7)   如果函式模板可以指明引數型別,定義   __stl_explicit_function_tmpl_args(sgi   stl中未使用)。  

8)   如果類中可定義函式模板為成員,定義   __stl_member_templates。  

9)   如果不支援關鍵字explicit,定義explicit為為乙個空巨集。  

10)   如果不能根據前乙個模板引數設定後乙個模板引數,定義   __stl_limited_default_templates。  

11)   如果對無型別模板引數(non-type   template   parameters)執行函式模板的引數推導出錯,定義   __stl_non_type_tmpl_param_bug。  

12)   如果不支援iterators的->操作符,定義   __sgi_stl_no_arrow_operator。  

13)   如果支援異常處理(exceptions),定義   __stl_use_exceptions。    

14)   如果把stl放在乙個namespace中,定義   __stl_use_namespaces。  

15)   如果使用sgi編譯,沒有選擇pthreads或其他threads,定義   __stl_sgi_threads。    

16)   如果使用win32的多執行緒模式(multithreaded   mode)編譯,定義   __stl_win32threads。  

17)   適當定義namespace相關巨集(__std,   __stl_begin_namespace,   等)。  

18)   適當定義exception相關巨集   (__stl_try,   __stl_unwind,   等)。  

19)   如果沒有定義__stl_assertions,定義__stl_assert為乙個空巨集。  

20)   如果定義__stl_explicit_function_impl_args,定義__stl_null_tmpl_args為<>,否則為空巨集。  

21)   如果定義__stl_class_partial_specialization,定義__stl_template_null為template   <>,否則為空巨集。  

各種「地」 各種「GND」

gnd,指的是電線接地端的簡寫。代表地線或0線。電路圖上和電路板上的gnd ground 代表地線或0線.gnd就是公共端的意思,也可以說是地,但這個地並不是真正意義上的地。是出於應用而假設的乙個地,對於電源來說,它就是乙個電源的負極。它與大地是不同的。有時候需要將它與大地連線,有時候也不需要,視具...

iOS 各種報錯,各種error

是因為修改了標頭檔案,新增了空格啊什麼的 llvm low level virtual machine 低階編譯器 需要把note 後面提示要刪的指定的路徑檔案在finder中找到並完全刪除 如果是真的修改了system header 那麼解決的方法 1 還原 2 重灌xcode 關於xib連線的三...

http各種中的各種timeout

1.tomcat 可以通過telnet測試 在tomcat的server.xml中,有個配置節 uriencoding utf 8 其中的connectiontimeout代表的意思是 在已經建立的http連線上,如果5000毫秒沒有資訊傳輸,怎伺服器關閉連線。但如果tomcat伺服器內容消耗的時間...