generic-programming

    3熱度

    1回答

    假設我有一個結構模板template<bool B> S內的靜態函數模板template<int I> void ft(),我想打電話給ft從另一個函數模板template<bool B> void g(),從g傳遞布爾模板參數S: template<bool B> struct S { static void f() { } template<int I>

    0熱度

    2回答

    我現在正在閱讀「C++標準庫」。我在5.7章中發現了一些困惑的東西。我們知道,我們可以編寫自己的函數和算法來處理集合的元素。當然,這些操作也可能是通用的。 讓我們來看一個例子。下面的代碼定義了一個泛型函數,它打印一個可選字符串,後跟所有傳入容器的元素。 template <class T> inline void PRINT_ELEMENTS(const T& col1,const char *

    2熱度

    3回答

    開發一個網絡應用程序,我有一個Connection類來管理網絡上的發送和接收消息。我正在使用boost :: asio。 我現在想讓Connection類通過TCP和本地UNIX流套接字處理連接。然而,boost的模板設計讓我感到困惑。 AFAICT,local :: stream_protocol :: socket和ip :: tcp :: socket之間沒有共享的基類。 我該如何去創建一個

    2熱度

    4回答

    有一個通用的功能LanguagePrimitives.DivideByInt通過int不失一般性的行爲來劃分,我們可以用這樣的: let inline Divideby2 n = LanguagePrimitives.DivideByInt n 2 val inline Divideby2 : ^a -> ^a when ^a : (static member DivideByInt

    1熱度

    2回答

    在下面的示例中,我需要提取一些值。我有一個高效的提取器,可以與內置類型一起工作,以及一個低效的模板,可以處理所有事情。要在這些之間進行選擇,我想使用Function Overloading Based on Arbitrary Properties of Types。這裏是我的代碼: #include <string> #include <iostream> class extractor

    8熱度

    4回答

    在C++中,您可以通過使用模板來同時使用泛型和類型安全容器。然而在C中,如果你想要通用容器,你必須(afaik)使用void*,這意味着你會失去類型安全。要有類型安全的容器,你將不得不重新實現他們對於你想要保存的每種類型的數據。 鑑於c跟更的程序員知道的什麼-he's-做理念比C++,你會在C做的更地道的事情:使用通用集裝箱,void*,或使自定義容器每種類型的數據?

    1熱度

    2回答

    我試圖傳遞成員函數指針作爲模板參數。下面是代碼: template <typename Ret, typename T, Ret(T::*mptr)()> Handle<Value> get_value (Local<String> name, const AccessorInfo& info) { ... } template <typename Ret, typename

    5熱度

    1回答

    我瞭解常規定點類型combinator,我想我理解高階固定n型combinators,但HFix避開了我。你能給出一個數據類型的例子和他們的(手工派生的)固定點,你可以應用HFix。

    0熱度

    1回答

    我有一個問題。 我目前正在研究一個linux應用程序(在這種情況下我們稱之爲BigApp)。此應用程序需要通過共享對象(so)和ini /文本文件進行定製。 的先決條件,用於創建這樣的共享對象包括: 生成在自定義位置C文件(從代碼完成) 從BigApp的源代碼庫的附加H文件(經由生成文件完成) 應用程序bin文件夾中的可執行shell腳本(完成),它設置一些參數,調用上面介紹的內部c文件生成器,並

    2熱度

    2回答

    我有一個函數,它有類型Read a => String -> a,是否有可能有另一個功能具有相同的名稱,做不同的事情a是例如String?是否有任何GHC擴展允許這樣做? 喜歡的東西: f :: Read a => String -> a f = read f :: String -> String f = id