各程式語言標準庫里最長的公開命名都是什麼樣的?

時間 2021-07-01 16:21:28

1樓:Nugine

Rust 1.53 標準庫中的最長公開命名是 _mm256_maskz_gf2p8affineinv_epi64_epi8 和 _mm512_maskz_gf2p8affineinv_epi64_epi8。

我找到了乙個工具 octaltree/rustdoc-index,可以解析 rustdoc 生成的搜尋索引,得到所有公開 item。

經過簡單的資料分析,結論如下:

Rust 1.53 標準庫中有 38747 個公開 item (包含不穩定 API)。

按 path 長度排序,前10名是

std::collections::hash_map::RawEntryBuilderMut::from_key_hashed_nocheck

std::collections::hash_map::RawEntryBuilder::from_key_hashed_nocheck

std::collections::hash_map::RawVacantEntryMut::insert_hashed_nocheck

std::os::unix::net::UnixDatagram::recv_vectored_with_ancillary_from

alloc::collections::linked_list::CursorMut::remove_current_as_list

std::collections::hash_map::RawOccupiedEntryMut::get_key_value_mut

std::os::unix::net::UnixDatagram::send_vectored_with_ancillary_to

alloc::collections::vec_deque::IterMut::__iterator_get_unchecked

std::collections::linked_list::CursorMut::remove_current_as_list

std::collections::hash_map::RawOccupiedEntryMut::into_key_value

按識別符號長度排序,前 4 名是

_mm256_maskz_gf2p8affineinv_epi64_epi8

_mm512_maskz_gf2p8affineinv_epi64_epi8

_mm256_mask_gf2p8affineinv_epi64_epi8

_mm512_mask_gf2p8affineinv_epi64_epi8

剔除以下劃線開頭的識別符號,按識別符號長度排序,前 9 名是

atomic_cxchgweak_acqrel_failrelaxed

recv_vectored_with_ancillary_from

atomic_cxchgweak_acq_failrelaxed

send_vectored_with_ancillary_to

atomic_cxchg_acqrel_failrelaxed

atomic_singlethreadfence_acqrel

is_powerpc64_feature_detected

from_bytes_with_nul_unchecked

來自 std::os::unix::

net 模組的 UnixDatagram 有兩個關聯函式闖入前 9 名,分別是 recv_vectored_with_ancillary_from 和 send_vectored_with_ancillary_to,距離第一還差兩個字元。

恭喜來自 core::arch::x86 模組的 _mm256_maskz_gf2p8affineinv_epi64_epi8 和 _mm512_maskz_gf2p8affineinv_epi64_epi8 獲得最長公開命名的稱號。

2樓:白川則正(Mizu)

Objective-C

- (instancetype)initWithBitmapDataPlanes:(unsigned char * _Nullable *)planespixelsWide:(NSInteger)widthpixelsHigh:

(NSInteger)heightbitsPerSample:(NSInteger)bpssamplesPerPixel:(NSInteger)spphasAlpha:

(BOOL)alphaisPlanar:(BOOL)isPlanarcolorSpaceName:(NSColorSpaceName)colorSpaceNamebitmapFormat:

(NSBitmapFormat)bitmapFormatbytesPerRow:(NSInteger)rBytesbitsPerPixel:(NSInteger)pBits;

3樓:

開個 C++ 的回答

C++20 的模板函式

uninitialized_construct_using_allocator

C++17 的編譯期常量

hardware_constructive_interference_size

std::hardware_destructive_interference_size, std::hardware_constructive_interference_size

C++11 的模板函式

來乙個巨集,在知乎編輯器排版上的長度,他們不相上下

__cpp_lib_has_unique_object_representations

如果 TS 裡面的也算的話,我找到乙個這個(顯然得利於中間的那個 experimental):

__cpp_lib_experimental_atomic_smart_pointers

待我找更長的。。。

自己的程式語言怎樣實現簡單的標準庫呢?

Yunfei Lu 若要實現原始檔裡面呼叫庫函式,你可以設計語言中包含import語句,那就需要實現包管理的功能了,也可以先不管而是把庫作為語言的內建命令。如果實現import功能,可以在編譯器開頭留乙個步驟專門讀取import的資訊,這個資訊保留在編譯後的生成檔案裡面,然後虛擬機器讀取生成檔案時,...

程式語言中型別前置和型別後置的優缺點各是什麼?

冒泡 如果你只是使用,自己學清楚就行,好壞也就是看你自己主觀上爽不爽了 不過如果從語言設計來說,前置型別我個人認為有倆問題,都是在函式方面,乙個是需要引入void這種關鍵字,整體風格有點突兀,當然你把void作為乙個型別來看待好像問題也不大 C 的做法,而且還能用void型別的特殊性搞一些技巧 但還...

未來程式語言能否解決不同程式語言現有模組無法快速移植 復用而需要重構的問題

Funky 完全可能。二進位製上程式語言自舉 群舉有這些專案在努力llvm,graalvm,wasm.現在的二進位制體系會被量子計算革命。總之,事在人為,都是有生之年系列,自然發展的客觀規律而已.君不見,秦統一六國,人類發現比夸克更小的粒子. 於冬 我倒是覺得隨著技術發展,最終計算機語言會從大部分人...