the usual drill... once there is one additional non explicit conversion ctor, lots of preferred conversion paths are opened under various conditions. The only remedy is to define all ctors explicitly, instead of letting the compiler infer them (from the imported base class ctors). Because this way we're able to indicate a yet-more-preferred initialisation path and thus prevent the compiler from going the conversion route. In the actual case, the coordinate Builder is the culprit; obviously we need smooth implicit conversion from builder expressions, and obviously we also want to restrict Builder's ctors to be used from UICoord solely. Unfortunately this misleads the compiler to do implement a simple copy construction from non const reference by going through the prohibited Builder ctor, or to instantiate the vararg-ctor inherited from PathArray. Thus better be explicit and noisy... |
||
|---|---|---|
| .. | ||
| backend | ||
| common | ||
| gui | ||
| include | ||
| lib | ||
| lumiera | ||
| plugin | ||
| proc | ||
| tool | ||
| .gitignore | ||
| DIR_INFO | ||
| doxygen.dox | ||
| SConscript | ||