Is er een keywoord om 'non-const' te definiëren?
Concreet, gegeven de volgende template
Maar hier niet:Nu denk ik dat een non-const keyword dit zou oplossen:
Concreet, gegeven de volgende template
C++:
Voor de schoonheid van het programma zou een template van een const type ook een copy constructor met een non-const template moeten accepteren. Het is ook normaal dat non-const objecten zonder meer naar const objecten converteren. 1
2
3
4
5
6
| template<typename T> class TTemplate { public: TTemplate(){} TTemplate( const TTemplate<T> & ){} }; |
Maar hier niet:
C++:
1
2
3
| TTemplate<char> y; TTemplate<char> x = y; TTemplate<const char> z = y; |
$ g++ Test.cpp Test.cpp:12:27: error: conversion from 'TTemplate<char>' to non-scalar type 'TTemplate<const char>' requested TTemplate<const char> z = y;
C++:
Wat vul ik in voor non-const?
1
2
3
4
5
6
7
| template<typename T> class TTemplate { public: TTemplate(){} TTemplate( const TTemplate<T> & ){} TTemplate( const TTemplate<non-const T> & ){} }; |