diff --git a/example/example.cpp b/example/example.cpp index fa88c369..10ec25f7 100644 --- a/example/example.cpp +++ b/example/example.cpp @@ -16,8 +16,8 @@ using namespace utils; int main(int argc, char* argv[]) { - details::stack_buf<12> a; - + details::stack_buf<12> a; + const unsigned int howmany = argc <= 1 ? 1000000:atoi(argv[1]); logger cout_logger ("example", sinks::stdout_sink()); diff --git a/include/c11log/details/fast_oss.h b/include/c11log/details/fast_oss.h index b98bfb2c..a1d7b3a2 100644 --- a/include/c11log/details/fast_oss.h +++ b/include/c11log/details/fast_oss.h @@ -14,7 +14,7 @@ class stack_devicebuf :public std::streambuf { public: using Base = std::streambuf; - using stackbuf = stack_buf<192>; + using stackbuf = stack_buf<192>; stack_devicebuf() = default; ~stack_devicebuf() = default; stack_devicebuf& operator=(const stack_devicebuf&) = delete; diff --git a/include/c11log/details/stack_buf.h b/include/c11log/details/stack_buf.h index 5aad569d..719febd5 100644 --- a/include/c11log/details/stack_buf.h +++ b/include/c11log/details/stack_buf.h @@ -15,19 +15,19 @@ template class stack_buf { public: - using bufpair_t = std::pair; - using iterator = char const*; - static constexpr unsigned short stack_size = STACK_SIZE; + using bufpair_t = std::pair; + using iterator = char const*; + static constexpr unsigned short stack_size = STACK_SIZE; stack_buf() :_v(), _stack_size(0) {} ~stack_buf() = default; stack_buf& operator=(const stack_buf& other) = delete; - stack_buf(const stack_buf& other):stack_buf(other, delegate_copy_move{}) + stack_buf(const stack_buf& other):stack_buf(other, delegate_copy_move {}) {} - stack_buf(stack_buf&& other):stack_buf(other, delegate_copy_move{}) - { + stack_buf(stack_buf&& other):stack_buf(other, delegate_copy_move {}) + { other.clear(); } @@ -49,14 +49,14 @@ public: //Not enough stack space. Copy all to _v else { - _v.reserve(_stack_size + buf_size); - _v.insert(_v.end(), _stack_array.begin(), _stack_array.begin() + _stack_size); + _v.reserve(_stack_size + buf_size); + _v.insert(_v.end(), _stack_array.begin(), _stack_array.begin() + _stack_size); _v.insert(_v.end(), buf, buf + buf_size); } } } - + void clear() { _stack_size = 0; @@ -71,39 +71,39 @@ public: return bufpair_t(_stack_array.data(), _stack_size); } - iterator begin() const - { - return get().first; - } + iterator begin() const + { + return get().first; + } - iterator end() const - { - bufpair_t bpair = get(); - return bpair.first + bpair.second; - } + iterator end() const + { + bufpair_t bpair = get(); + return bpair.first + bpair.second; + } std::size_t size() const { - return get().second; + return get().second; } private: - struct delegate_copy_move {}; - template - stack_buf(T1&& other, delegate_copy_move) - { - _stack_size = other._stack_size; + struct delegate_copy_move {}; + template + stack_buf(T1&& other, delegate_copy_move) + { + _stack_size = other._stack_size; if (other.vector_used()) _v = std::forward(other)._v; else - std::copy_n(other._stack_array.begin(), other._stack_size, _stack_array.begin()); + std::copy_n(other._stack_array.begin(), other._stack_size, _stack_array.begin()); + } + + inline bool vector_used() const + { + return !(_v.empty()); } - inline bool vector_used() const - { - return !(_v.empty()); - } - std::vector _v; std::array _stack_array; std::size_t _stack_size;