View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000298 | LDMud 3.5 | LPC Compiler/Preprocessor | public | 2004-11-27 00:01 | 2009-10-06 02:16 |
Reporter | Assigned To | ||||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | new | Resolution | open | ||
Summary | 0000298: const parameters | ||||
Description | Short: const parameter From: Markus Peter Date: 2002-08-13 Type: Feature State: New Die andere Sache waer von der Prioritaet her eher niedriger, mehr ein nice to have: Es waer schoen, einen "const" modifier oder aehnliches bei der Parameteruebergabe zur Verfuegung zu haben, der _alle_ Schreibzugriffe, also auch Schreibzugriffe auf in arrays/mappings enthaltene References verhindert, und zwar mit einem Error, so dass ich einer Funktion etwas uebergeben kann, und sicher weiss, dass es nicht veraendert wird, ohne einen deep_copy zu machen. In wiefern das mit der Struktur des Drivers umsetzbar ist, weiss ich nicht, bin mit dem Source leider nicht sehr vertraut. -- It might be done using special const-LVALUEs, but it's almost easier to rewrite the LPC compiler. But the same mechanism could be used for 'const references' in general, and for opening up variables to inheriting classes for read-only access (like Oberon's '+' visibility). | ||||
Tags | No tags attached. | ||||
|
I am very much in favor of all ideas involving "const", "&"-parameters, etc, as this would greatly be of help in maintaining consistency and stability in large libraries. (error exclusion by good design) Having always to do copy() / deep_copy() on referenced variables does take up a lot of ressources, just to prevent the possibility of misuse. |