|
Boost : |
From: Bronek Kozicki (brok_at_[hidden])
Date: 2004-01-21 10:43:04
On Wed, 21 Jan 2004 16:20:36 +0100, Bronek Kozicki wrote:
> not know how Howard wants to define both classes :/ (call me dumb)
Or maybe don't call me dumb. Quick examination of "The Template Guide"
enlightened me.
#include <iostream>
template <typename T> struct move_ptr
{
const char* say() const {return "move_ptr<T>::say\n";};
static const char* ptr() {return "move_ptr<T>::ptr\n";};
};
template <typename T> struct move_ptr<T[]>
{
const char* say() const {return "move_ptr<T[]>::say\n";};
static const char* arr() {return "move_ptr<T[]>::arr\n";};
};
template <typename T>
const char* say(move_ptr<T>& t) {return t.say();}
int main()
{
std::cout << move_ptr<int>::ptr();
std::cout << move_ptr<int[]>::arr();
move_ptr<int> ptr;
move_ptr<int[]> arr;
std::cout << say(ptr);
std::cout << say(arr);
}
I think that it is more generic, than having two classes move_ptr and
move_arr; isn't it ?
B.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk