나쁜 습관을 가지고 있지만이 문제에 대한 해결 방법이나 해킹 방법을 알고 싶습니다.std :: vector에서 bool 참조 가져 오기 <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
'std :: vector'을 사용하지 않는'A '에 대한 전문화를 제공 할 수 있습니다. –
juanchopanza