Maxime Coste
3a60e633a4
safe_ptr have no overhead when KAK_DEBUG is not defined
2013-02-28 18:54:15 +01:00
Maxime Coste
f82a2e22a1
Containers utils: use Container&& in order to accept temporaries
2013-02-27 19:58:07 +01:00
Maxime Coste
edef8e4e98
Remove Set and use unordered_set
2013-01-31 18:58:25 +01:00
Maxime Coste
f8209e3b52
fix contains for empty containers
2013-01-29 18:55:32 +01:00
Maxime Coste
914ede7a82
Add and use a Set template class for recuring small sets
2013-01-11 14:28:13 +01:00
Maxime Coste
4a3f9d6187
ClientManager: support naming clients and accessing client's context by name
2012-12-03 18:56:53 +01:00
Maxime Coste
037210c70c
SafeCountable::m_count is mutable so that we can have safe_ptr<const T>
2012-11-12 20:07:05 +01:00
Maxime Coste
514aeead63
do not use our broken safe bool, c++11 explicit bool conversion is better
2012-10-02 14:18:34 +02:00
Maxime Coste
9ec10daf69
move clamp to utils.hh
2012-10-02 14:08:09 +02:00
Maxime Coste
f1d8d0add8
escape whitespaces in filename or buffername completions
2012-08-29 21:52:17 +02:00
Maxime Coste
f11d44246c
add safe_ptr::operator=(safe_ptr&&) and safe_ptr::reset(T*)
2012-06-30 00:33:36 +02:00
Maxime Coste
1289268174
Add SafeCountable and safe_ptr classes
...
safe_ptr is a smart pointer which manage a safe count in pointed
objects. SafeCountable provides the interface needed for safe_ptr
and assert the safe count is zero in destructor.
This permits to have pointers that guarantees their pointed object is
alive.
2012-06-28 13:42:55 +02:00
Maxime Coste
cffb895797
remove ugly id_to_str param in idvaluemap and str_to_str
2012-06-25 19:11:13 +02:00
Maxime Coste
5710893dd5
Cleanup utils.hh, remove auto_raii in favor of on_scope_end
2012-06-12 18:45:13 +00:00
Maxime Coste
9337938403
replace std::string references with String
2012-04-14 01:17:09 +00:00
Maxime Coste
14d17a4493
add a find(container, value) utility function
2012-01-25 22:31:47 +00:00
Maxime Coste
91606850fd
Utils: add on_scope_end utility
...
on_scope_end permits to register a functor to be called at scope
end (either exception thrown or normal scope end). this is usefull
for cleanup code that must be run.
usage:
auto cleaner = on_scope_end([]() { cleanup(); });
2011-12-20 19:18:00 +00:00
Maxime Coste
4252e0d610
Window: use an idvaluemap to store highlighters
2011-12-02 14:20:11 +00:00
Maxime Coste
1c6eef08f1
utils: add contains function
2011-10-17 21:05:22 +00:00
Maxime Coste
26537d7028
Utils: Singleton template and migration of the BufferManager
...
Singletons are not autocreating, the application needs to create
exactly one instance (I want to avoid implicit initialization order
hell)
2011-09-23 14:26:53 +00:00
Maxime Coste
34c9b0d30f
LineAndColumn: move to it's own header and add operator[+-]=?
...
LineAndColumn is now a template so that WindowCoords and BufferCoords
cannot be added together.
2011-09-17 14:13:33 +00:00
Maxime Coste
4b38cd3cd0
utils: add auto_raii helper function
...
this helper permits to register a resource and cleanup function to keep
exception safety with C like resource. For exemple, to be sure that a
FILE* will be closed, you can use:
auto file = auto_raii(fopen("filename"), fclose);
file will auto cast to FILE* when needed, and will call fclose when
going out of scope.
2011-09-14 15:36:35 +00:00
Maxime Coste
030c5caf0a
assert: custom implementation
2011-09-09 19:24:18 +00:00
Maxime Coste
511df5b660
utils: add operator== (const std::unique_ptr<T>&, T*)
2011-09-08 00:08:55 +00:00
Maxime Coste
f58cbf0b98
utils: Add reversed template helper for container iteration
...
this permits to use range-based for loops to iterate on reversed
containers. Should work on any container implementing rbegin and rend.
2011-09-06 18:33:35 +00:00
Maxime Coste
6668151c78
LineAndColumn: segregate into WindowCoord and BufferCoord
...
Having the same type to specify coordinates in window space or buffer
space is error prone, now the compiler will tell if we use one for
another.
2011-09-05 19:06:31 +00:00