C 如何在執行時得到物件或者變數的型別?

時間 2021-06-03 09:50:32

1樓:Zhaoyang

std::type_info::operator==, std::type_info::operator!=

題主需要的是這個

2樓:

你是指 typename t1::type x?

還是decltype t2(t1)?

typeid(t1).name()可以獲取執行時t1的型別字串。

3樓:藍色

如果是模版,還沒有涉及到執行時,可以通過type_traits一系列檢測型別,如std::is_same。

而如果是執行時,我目前能想到乙個折衷,在執行時獲取型別的可以是std::any - cppreference.com, 類似boost::

any,可以使用type()方法在執行時去獲取型別,如果你是已經確定了一系列型別,可以考慮Chapter27.Boost.Variant, 通過which()或者type()函式去拿。

4樓:DeathPoem

有一句流傳廣泛的話叫做,you can only do it easy in our way 。不過你個問題也不是沒有辦法,可以嘗試去hack開源編譯器的ABI,也許可以,我不確定。

Docker容器在執行時訪問的檔案路徑是什麼

軟體園的豬 Docker容器本質上不是乙個虛擬機器,但是使用的時候你可以基本上把它當做乙個虛擬機器。容器程序訪問的是這個虛擬機器內的檔案,不是宿主機內的檔案。Docker容器執行結束就銷毀了,所以要把需要持久儲存的檔案儲存到宿主機上。使用 volume指令可以把宿主機目錄對映到虛擬機器內,交給容器程...

動態型別如何實現在執行時變換變數的型別

babypapa 有別人已經回答的很不錯了,我只補充一點,你理解的乙個誤區是動態語言能夠更換型別,各種動態語言的toString之類的介面,其實是返回乙個新的變數,並不是改變乙個變數的型別。 根據我的了解就是指標實現,但是對指標做了乙個小封裝,給它附加了乙個型別的資訊。通過這個型別資訊就能在執行的時...

Linux下C C 動態庫在執行時是怎樣載入進來的?

吳昊宣 正好最近在看共享庫,試答,如果不對還請指正 題主所說應該屬於動態載入庫,即通過一組動態鏈結器的API來實現,這組API通常稱為dlopen API。dlopenAPI 使得程式能在執行時開啟乙個共享庫,根據名字在庫中搜尋乙個函式並呼叫。其中主要的函式是 dlopen libname,flag...