我有一些泛型函數返回<T>類型的變量。我將一些2個迭代器傳遞給函數。然後,我嘗試用函數distance來計算矢量的大小。在函數內部,我定義了一個新的類型定義,稱爲v_size,但該矢量的<T>類型未知。我如何通過只傳遞迭代器來計算矢量的大小? template<class In, class T>
T my_func(In b, In e)
{
typedef typename
我想在編譯時將函數的模板類型限制爲特定的類及其子類。要做到這一點,我使用的類型性狀std::enable_if_t和std::is_base_of這樣的: template <typename T = std::enable_if_t<std::is_base_of<A, T> > >
但仍然模板與不繼承層次結構(即int)的一部分類型的編譯。下面是該問題的MCVE: class A {
p