2017-07-11 89 views
-1

我們商業C++庫中的大部分依賴於模板。我們計劃將我們的產品作爲頭文件和動態鏈接庫(封閉源代碼)銷售,但由於我們大多數代碼庫都集中在頭文件中,實際上我們將其作爲開源代碼發佈,並且缺少小的,易於替換的塊。重模板庫中的代碼混淆

下面是我們從庫接口樣子類的什麼一個例子:

template<class ItInput, class ItOutput> 
struct serialize{ 
    ItOutput operator() (ItInput first, ItInput last, ItOutput d_first) { 
    // operation on pointers (assuming that ++, -- and * operators work as expected for pointers) 
} 

是否有提供模糊的水平,我們的模板代碼等於或大於常規代碼編譯好(的方式即在技術上是可逆的,但不是最好的,也不是最佳的)?

編輯:爲了澄清,我們的目標是防止用戶閱讀實施,不會阻止我們的工作非法複製。爲了這個問題,請假設我們有這個要求的正當理由。

+0

怎麼樣使用預編譯頭?我不確定將它們變回源代碼是多麼容易。 –

+0

儘管代碼是「打開」(可讀),但您仍然可以通過許可證關閉源代碼。它不會阻止人們複製它(任何人都可以盜版),但它確實會讓你有權追究違反它的人。 – NathanOliver

+0

混淆代碼如何防止人們複製它? –

回答