LUMIERA.clone/src/lib
Ichthyostega bc1cf3a0b5 Library: sharpen detection of possible string conversion
When invoking the util::toString conversion, we indeed to want any conversion,
including explicit conversion operators. However, probing the possibility to build a string
can be dangerous, since there is a string constructor from characters, and
integral types can be converted to characters.

OTOH, leaving out explicit conversions is likewise not desirable, since there are
class types, which deliberately do not offer an implicit conversion, but allow
explicit conversion for dump and diagnostic output. The notorious example for
such a situation is the lib::idi::EntryID<TY>. We certainly do not want an
EntryID to be converted into a string without further notice, but we do want
an EntryID to be automatically rendered to string in diagnostic output, since
this will include the human readable ID part.

See especially: 8432420726

Now we'll attempt to get out of this dilemma by probing explicitly for the presence
of a string conversion operator, which will fail for any non-class types, thereby
ruling out all those nasty indirect type -> character -> string conversion paths.

The rationale is: if someone queries the predicate can_convertToString, the intention
is really to get an string rendering, and not just to invoke some random function
with an string argument.
2018-12-10 00:09:56 +01:00
..
diff Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
idi Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
meta Library: sharpen detection of possible string conversion 2018-12-10 00:09:56 +01:00
test Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
time Global-Layer-Renaming: fix remaining textual usages and IDs in the code 2018-12-10 00:09:56 +01:00
access-casted-o.hpp phase out the (now obsoleted) old Variant and AccessCasted implementation 2015-04-28 04:49:08 +02:00
access-casted.hpp TICKET 141: now we've full coverage, both for Variant and AccessCasted 2015-04-26 05:55:54 +02:00
allocation-cluster.cpp pre-C++17: remove remaining old-style (dynamic) exception specifications 2018-04-26 12:07:08 +02:00
allocation-cluster.hpp GCC-7: integrate recent clean-up and refactoring work (lib::Depend) 2018-04-27 02:23:20 +02:00
call-queue.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
cmdline.cpp Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
cmdline.hpp Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
condition.c GPL header whitespace 2010-12-17 23:28:49 +01:00
condition.h Doxygen Fixes (#1062) 2017-04-02 04:22:51 +02:00
del-stash.hpp reduce include dependencies of DelStash 2018-04-01 00:37:58 +02:00
depend-inject.hpp Static-Init: switch lib::Depend to embed the factory as Meyer's Singleton (#1142) 2018-05-01 18:49:20 +02:00
depend.hpp FailureHandling: improved ZombieCheck 2018-10-01 05:51:21 +02:00
diagnostic-context.hpp Library: replace boost::noncopyable by our own library solution 2018-03-24 05:35:13 +01:00
DIR_INFO Lumiera renaming -- build system 2008-03-10 05:07:21 +01:00
element-tracker.hpp maximum munch 2016-12-23 04:23:03 +01:00
error-exception.cpp FailureHandling: investigate crash in emergency shutdown 2018-10-01 04:09:45 +02:00
error-state.c re-arrange tests according to layer structure 2013-01-07 05:43:01 +01:00
error.h Modernise Lumiera Error baseclass 2018-04-01 23:45:00 +02:00
error.hpp GCC-7: integrate recent clean-up and refactoring work (lib::Depend) 2018-04-27 02:23:20 +02:00
format-cout.hpp DOC: fix syntax of some doxygen links 2018-09-21 14:33:12 +02:00
format-obj.cpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
format-obj.hpp DOC: fix syntax of some doxygen links 2018-09-21 14:33:12 +02:00
format-string.cpp wrap-up(#985): resolve various leftovers 2016-01-10 11:21:34 +01:00
format-string.hpp Library: replace boost::noncopyable by our own library solution 2018-03-24 05:35:13 +01:00
format-util.hpp DOC: fix syntax of some doxygen links 2018-09-21 14:33:12 +02:00
frameid.hpp Global-Layer-Renaming: adapt lots of documentation 2018-11-15 21:13:52 +01:00
functor-util.hpp DOC: eliminate spurious mentions of tr1:: 2018-01-12 03:03:25 +01:00
handle.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
hash-fnv.c Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
hash-fnv.h Doxygen Fixes (#1062) 2017-04-02 04:22:51 +02:00
hash-indexed.hpp DOC: eliminate spurious mentions of tr1:: 2018-01-12 03:03:25 +01:00
hash-standard.hpp metaprogramming: get rid of the remaining boost::enable_if usages 2017-08-11 20:23:46 +02:00
hash-value.h reorganise some boost::format usage 2013-09-01 17:36:05 +02:00
hierarchy-orientation-indicator.hpp fix inconsistency in conception of HierarchyOrientationIndicator 2015-09-25 03:57:29 +02:00
iter-adapter-ptr-deref.hpp Library: prevent implicit bool conversion on iterator-like objects 2018-09-14 21:06:14 +02:00
iter-adapter-stl.hpp Library: prevent implicit bool conversion on iterator-like objects 2018-09-14 21:06:14 +02:00
iter-adapter.hpp Library: prevent implicit bool conversion on iterator-like objects 2018-09-14 21:06:14 +02:00
iter-chain-search.hpp DOC: fix syntax of some doxygen links 2018-09-21 14:33:12 +02:00
iter-cursor.hpp DOC: fix syntax of some doxygen links 2018-09-21 14:33:12 +02:00
iter-explorer.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
iter-source.hpp Library: replace boost::noncopyable by our own library solution 2018-03-24 05:35:13 +01:00
iter-stack.hpp TreeExplorer: helper function so support ChainSearch::clearFilter() 2018-09-14 21:06:15 +02:00
iter-tree-explorer.hpp ChainSearch: backtracking verified -- finished 2018-09-16 01:08:49 +02:00
itertools.hpp Library: prevent implicit bool conversion on iterator-like objects 2018-09-14 21:06:14 +02:00
lifecycle.cpp Switch basic Application initialisation to the rewritten DependencyFactory 2018-04-02 02:56:08 +02:00
lifecycleregistry.hpp Library: replace boost::noncopyable by our own library solution 2018-03-24 05:35:13 +01:00
linked-elements.hpp Modernise Unknown Exception handler and Exception messages 2018-04-02 01:48:51 +02:00
llist.h Doxygen Fixes (#1062) 2017-04-02 04:22:51 +02:00
lockerror.c MERGE Doxygen clean-up done during the last months 2017-04-01 23:59:00 +02:00
lockerror.h Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
luid.c Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
luid.h clean-up: sourcefile layout and spell checking 2014-10-23 23:04:35 +02:00
maybe.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
mpool.c Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
mpool.h Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
mrucache.c Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
mrucache.h Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
multifact.hpp fix argument passing for MultiFact(#388) 2014-09-23 03:37:28 +02:00
mutex.c GPL header whitespace 2010-12-17 23:28:49 +01:00
mutex.h clean-up: sourcefile layout and spell checking 2014-10-23 23:04:35 +02:00
nobug-init.cpp Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
nobug-init.hpp GPL header whitespace 2010-12-17 23:28:49 +01:00
nobug-resource-handle-context.hpp Library: replace boost::noncopyable by our own library solution 2018-03-24 05:35:13 +01:00
nocopy.hpp DI: rework dependency-injection configuration in terms of the new DependencyFactory 2018-03-30 05:56:53 +02:00
null-value.hpp verify a case with indeed non-assignable entities (lumiera Time) 2017-01-12 07:30:33 +01:00
observable-list.hpp maximum munch 2016-12-23 04:23:03 +01:00
opaque-holder.hpp Timeline: draft solution how to delegate to the actual TimelineWidget 2018-10-11 17:21:47 +02:00
optional-ref.hpp Modernise Unknown Exception handler and Exception messages 2018-04-02 01:48:51 +02:00
p.hpp GCC-5 compatibility: remove the last remaining auto_ptrs 2017-05-01 21:43:10 +02:00
path-array.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
polymorphic-value.hpp metaprogramming: get rid of the remaining boost::enable_if usages 2017-08-11 20:23:46 +02:00
ppmpl.h DOC: reorganise the Doxygen configuration and structure 2013-10-25 06:34:38 +02:00
priqueue.c Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
priqueue.h Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
psplay.c UI-top-level: fix GTK framework initialisation order 2017-05-19 17:00:41 +02:00
psplay.h Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
query-diagnostics.hpp Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
query-text.cpp Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
query-text.hpp refactor defaults-manager to use the reworked query interface 2012-12-22 00:39:23 +01:00
query-util.cpp Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
query-util.hpp Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
reccondition.c GPL header whitespace 2010-12-17 23:28:49 +01:00
reccondition.h clean-up: sourcefile layout and spell checking 2014-10-23 23:04:35 +02:00
recmutex.c GPL header whitespace 2010-12-17 23:28:49 +01:00
recmutex.h clean-up: sourcefile layout and spell checking 2014-10-23 23:04:35 +02:00
ref-array-impl.hpp pre-C++17: remove remaining old-style (dynamic) exception specifications 2018-04-26 12:07:08 +02:00
ref-array.hpp Library: replace boost::noncopyable by our own library solution 2018-03-24 05:35:13 +01:00
replaceable-item.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
result.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
rwlock.c GPL header whitespace 2010-12-17 23:28:49 +01:00
rwlock.h clean-up: sourcefile layout and spell checking 2014-10-23 23:04:35 +02:00
safeclib.c Global-Layer-Renaming: adjust header includes 2018-11-15 23:42:43 +01:00
safeclib.h Global-Layer-Renaming: adapt lots of documentation 2018-11-15 21:13:52 +01:00
scoped-collection.hpp Modernise Unknown Exception handler and Exception messages 2018-04-02 01:48:51 +02:00
scoped-holder-transfer.hpp GCC-5 compatibility: remove the last remaining auto_ptrs 2017-05-01 21:43:10 +02:00
scoped-holder.hpp GCC-5 compatibility: remove the last remaining auto_ptrs 2017-05-01 21:43:10 +02:00
scoped-ptrvect.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
searchpath.cpp MERGE Doxygen clean-up done during the last months 2017-04-01 23:59:00 +02:00
searchpath.hpp Modernise Unknown Exception handler and Exception messages 2018-04-02 01:48:51 +02:00
sectionlock.h Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
simple-allocator.hpp clean-up(#985): unify various type-indicating helpers 2016-01-09 02:05:23 +01:00
slist.h clean-up: sourcefile layout and spell checking 2014-10-23 23:04:35 +02:00
sub-id.hpp Commands: establish location for defining commands 2017-03-17 21:07:12 +01:00
symbol-impl.cpp fix an off-by one, spotted by chance 2018-10-12 23:43:36 +02:00
symbol-table.hpp Library: replace boost::noncopyable by our own library solution 2018-03-24 05:35:13 +01:00
symbol.hpp Global-Layer-Renaming: adapt lots of documentation 2018-11-15 21:13:52 +01:00
sync-classlock.hpp FailureHandling: improved ZombieCheck 2018-10-01 05:51:21 +02:00
sync.cpp fix insideous problem with mutex initialisation 2013-10-13 01:48:27 +02:00
sync.hpp Library: prevent implicit bool conversion on iterator-like objects 2018-09-14 21:06:14 +02:00
thread-local.hpp Modernise Unknown Exception handler and Exception messages 2018-04-02 01:48:51 +02:00
time.h Global-Layer-Renaming: adapt lots of documentation 2018-11-15 21:13:52 +01:00
tmpbuf.c Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
tmpbuf.h Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
tree.hpp DOC: reorganise the Doxygen configuration and structure 2013-10-25 06:34:38 +02:00
typed-allocation-manager.hpp evolution(#967): simplify by variadic arguments 2016-02-06 22:17:48 +01:00
typed-counter.hpp SessionCommand: multithreaded stress test PASS (closes #1046) 2017-01-14 08:37:46 +01:00
unique-malloc-owner.hpp reorganisation(#985): move basic typeString implementation into lib::meta 2016-01-05 23:34:53 +01:00
util-coll.hpp metaprogramming: switch util-foreach to our own enable_if implementation 2017-08-11 20:02:37 +02:00
util-foreach.hpp metaprogramming: switch util-foreach to variadic templates (#967) 2017-08-11 20:35:53 +02:00
util-quant.hpp Doxygen: fill in missing file level headlines for the Library 2016-11-08 13:18:05 +01:00
util.cpp change util::sanitise to filter out ' 2018-10-12 23:45:49 +02:00
util.hpp change util::sanitise to filter out ' 2018-10-12 23:45:49 +02:00
variant-o.hpp Library: replace boost::noncopyable by our own library solution 2018-03-24 05:35:13 +01:00
variant.hpp NotificationDisplay: fix improper state mark for "expand" (WIP) 2018-10-01 00:47:19 +02:00
vcall.h GPL header whitespace 2010-12-17 23:28:49 +01:00
verb-token.hpp mass clean-up: adapt usage of std::cout pretty much everywhere 2016-01-07 20:12:46 +01:00
visitor-dispatcher.hpp MERGE Doxygen clean-up done during the last months 2017-04-01 23:59:00 +02:00
visitor-policies.hpp clean up lib/meta namespaces 2011-12-03 03:15:59 +01:00
visitor.hpp Global-Layer-Renaming: adapt lots of documentation 2018-11-15 21:13:52 +01:00
wrapper.hpp TreeExplorer: refactor Transformer to employ the improved wrapping style 2018-09-14 21:06:15 +02:00
wrapperptr.hpp Global-Layer-Renaming: adjust namespace qualification 2018-11-15 23:59:23 +01:00
zombie-check.hpp FailureHandling: improved ZombieCheck 2018-10-01 05:51:21 +02:00