-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)
}
是否有提供模糊的水平,我們的模板代碼等於或大於常規代碼編譯好(的方式即在技術上是可逆的,但不是最好的,也不是最佳的)?
編輯:爲了澄清,我們的目標是防止用戶閱讀實施,不會阻止我們的工作非法複製。爲了這個問題,請假設我們有這個要求的正當理由。
怎麼樣使用預編譯頭?我不確定將它們變回源代碼是多麼容易。 –
儘管代碼是「打開」(可讀),但您仍然可以通過許可證關閉源代碼。它不會阻止人們複製它(任何人都可以盜版),但它確實會讓你有權追究違反它的人。 – NathanOliver
混淆代碼如何防止人們複製它? –