Können IDS werden dupliziert, über die Fälle der Variante record in FreePascal?

Hier ist mein problem: ich möchte ein record-Typ, wo unter den Fällen der Variante record, einige, aber nicht alle, haben einen bestimmten Bereich. Nach der wiki, ist dies vollkommen legal. Und doch, wenn ich versucht zu kompilieren, den folgenden code:

program example;

{$mode objfpc}{$H+}

uses sysutils;

type
  maritalStates = (single, married, widowed, divorced);

  TPerson = record
    name: record
      first, middle, last: string;
    end;
    sex: (male, female);
    dob: TDateTime;
    case maritalStatus: maritalStates of
      single: ( );
      married, widowed: (marriageDate: TDateTime);
      divorced: (marriageDate, divorceDate: TDateTime;
        isFirstDivorce: boolean)      
  end;

var
  ExPerson: TPerson;

begin
ExPerson.name.first := 'John';
ExPerson.name.middle := 'Bob';
ExPerson.name.last := 'Smith';
ExPerson.sex := male;
ExPerson.dob := StrToDate('05/05/1990');
ExPerson.maritalStatus := married;
ExPerson.marriageDate := StrToDate('04/01/2015');

end.

schlägt die Kompilierung fehl mit der folgenden Fehlermeldung:

$ fpc ex.pas
Free Pascal Compiler version 3.0.0 [2016/02/14] for x86_64
Copyright (c) 1993-2015 by Florian Klaempfl and others
Target OS: Win64 for x64
Compiling ex.pas
ex.pas(19,18) Error: Duplicate identifier "marriageDate"
ex.pas(21,3) Error: Duplicate identifier "marriageDate"
ex.pas(35,4) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
Error: C:\lazarus\fpc\3.0.0\bin\x86_64-win64\ppcx64.exe returned an error exitcode

Ist das wiki einfach falsch, oder bin ich hier etwas fehlt? Gibt es eine Möglichkeit, um diesen Effekt zu erzielen, die ich will?

  • Genial! Das klappte! Möchten Sie dies als Antwort, damit kann ich markierte die Frage gelöst, oder willst du mir es beantworten?
  • Wiki ist les-und schreibbar für alle, die sich registriert, und ist nicht MAßGEBEND. Es sind keine FPC-Menschen, die in der Liste der Mitwirkenden zu dieser Seite. Es könnte auch getan werden, indem sb mit einem anderen Modus (.e.g ISO-oder Macpas).
  • FWIW, ISTM, dass die Menschen können geschiedene und verwitwete oder verheiratet. Oder alle diese. Sie können auch geschieden und single. <g>
InformationsquelleAutor Kevin Keith | 2016-04-21
Schreibe einen Kommentar