我知道這是一個壞習慣,但我想知道一些解決方法或hack這個問題。 我有這樣一個類:從std :: vector獲取布爾引用<bool>
template <class T>
class A : std::vector<T> {
T& operator()(int index) { // returns a _reference_ to an object
return this->operator[](index);
}
};
這是可以做到這樣的事情:
A<int> a{1,2,3,4};
a(3) = 10;
,但是它停止,如果有人使用布爾作爲模板參數
A<bool> a{true, false, true};
std::cout << a(0) << std::endl; // not possible
if (a(1)) { /* something */ } // not possible
工作
std::vector<bool>
是矢量(http://www.cplusplus.com/reference/vector/vector-bool/),它不允許這樣的事情的專業版本。
有沒有辦法如何從std :: Vector獲取布爾變量的引用?還是有其他解決方案?
它會產生編譯錯誤嗎?還是它編譯好,但不能以某種方式工作? – wallyk 2014-09-10 15:58:19
您可以爲不使用'std :: vector'的'A '提供專業化。 –
juanchopanza
2014-09-10 16:02:12