我想根據定義加載各種頭文件(模塊,插件)。繼承人我的方法:如何實現動態模塊(在頭文件中)加載c + +
template<typename T = float>
class container {
T *_data;
#ifdef mymodule1
#include mymodule1
#endif
...}
Mymodule1.h:
container<T> fooOnContainer() [maybe const] {
makesomething involving the T template parameter
}
和含有 「主」 的文件中:
#define mymodule1 "mymodule1.h"
#include "container.h"
in main { using it }
所以基本上只定義頭文件將被納入我的容器。我在庫中看到了這種叫做「cimg」的方法,但是我不能讓它工作,因爲編譯器不能推導出模板參數。它的罰款,如果我做一樣的東西:
container<T>& fooOnContainer(T param) {
...
}
但是,有沒有辦法做到這一點像第一個「mymodule1.h」?也許操作符重載?或者如果有人不可能做到,有人會建議我採用更好更簡單的方法嗎? (我真不明白它是如何工作該庫:))
編輯:
很抱歉,如果我是不確定的,所以這裏是一些代碼:
這是一個毫無意義的例子,但我想讓這樣的事情,但當然更復雜:
Mymodule1.h:
int getWidth() const {
return (*this)._width;
}
和智能說: 「在YPE限定符不允許在非成員函數「
又如:
T getPos(int x) const {
T* px;
return _data[x];
}
和智能說: ‘T’是未定義的,標識符‘_data’未定義
實際上你是如何使用它的(http://stackoverflow.com/posts/26241935/edit)? – 2014-10-07 17:46:09
您可以創建一個[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)並向我們展示?還請包括您擁有的任何和所有錯誤。 – 2014-10-07 17:58:20
例如: container <> img; ... load image ... container <> dest; dest = image.fooOnContainer([閾值或其他]) – ex4cutor 2014-10-07 18:00:56