2
我有作用於型clazz和它們之間的唯一區別的對象兩個功能是我訪問他們的成員的方式:函數參數:矢量<Clazz*>&VS矢量<Clazz>&
void foo(vector<Clazz*>& v) {
...
v[0]->method();
...
}
void foo(vector<Clazz>& v) {
...
v[0].method();
...
}
這是不可能的/實際上可以將不使用v的代碼外包並編寫一個簡單的包裝函數。我可以在一個循環中簡單地將一個矢量類型轉換爲另一個矢量類型,並將新矢量傳遞給該函數的一個標準化版本,但我需要一個支持這兩種變體的快速解決方案。
是否有合併兩個函數的方法,仍然保留兩種輸入類型的靈活性?