Re: Type safety, C++ and code generation
- From: Georg Bauhaus <bauhaus@xxxxxxxxxxxxx>
- Date: Thu, 27 Apr 2006 17:39:39 +0200
Maciej Sobczak wrote:
type ranged_type<int, 0, 250> Speed;
Speed s1, s2, s3; // with some values
s1 = s2 + s3; // OK
s1 = s2 * s3; // not OK
The addition is fine, but the multiplication should not be provided,
because speed multiplied by speed is not a speed. Can you extend your
class so that the compiler will refuse to compile the second operation
above?
(Ada, anyone? :) )
Just so it is visible:
procedure useop is
s1, s2, s3: SPEED; -- with some values
begin
s3 := s1 * s2;
end useop;
8. s3 := s1 * s2;
|
>>> cannot call abstract subprogram "*"
where
package Op is
type SPEED is range 0 .. 250;
function "*"(a, b: SPEED) return SPEED is abstract;
end Op;
.
- Follow-Ups:
- Re: Type safety, C++ and code generation
- From: Maciej Sobczak
- Re: Type safety, C++ and code generation
- References:
- Type safety, C++ and code generation
- From: Maciej Sobczak
- Re: Type safety, C++ and code generation
- From: REH
- Re: Type safety, C++ and code generation
- From: Maciej Sobczak
- Re: Type safety, C++ and code generation
- From: REH
- Re: Type safety, C++ and code generation
- From: Maciej Sobczak
- Type safety, C++ and code generation
- Prev by Date: Re: procedural vs object oriented
- Next by Date: Re: procedural vs object oriented
- Previous by thread: Re: Type safety, C++ and code generation
- Next by thread: Re: Type safety, C++ and code generation
- Index(es):
Relevant Pages
|