From 1406cbe853e495391ee92daa7d636042349d1c6d Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Mon, 23 Feb 2009 15:22:05 -0400 Subject: [PATCH] Changed the constness of interactive_t::get --- src/interactive.h | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/interactive.h b/src/interactive.h index a2c64ffb..a0388726 100644 --- a/src/interactive.h +++ b/src/interactive.h @@ -78,39 +78,53 @@ public: return false; } - const value_t& value_at(std::size_t index) const { + value_t& value_at(std::size_t index) { assert(has(index)); return args[index]; } template - T get(std::size_t index) const; + T get(std::size_t index); }; template <> -inline bool interactive_t::get(std::size_t index) const { +inline bool interactive_t::get(std::size_t index) { return value_at(index).to_boolean(); } template <> -inline long interactive_t::get(std::size_t index) const { +inline long interactive_t::get(std::size_t index) { return value_at(index).to_long(); } template <> -inline string interactive_t::get(std::size_t index) const { +inline amount_t interactive_t::get(std::size_t index) { + return value_at(index).to_amount(); +} +template <> +inline string interactive_t::get(std::size_t index) { return value_at(index).to_string(); } template <> -inline mask_t interactive_t::get(std::size_t index) const { +inline mask_t interactive_t::get(std::size_t index) { return value_at(index).to_mask(); } template <> -inline date_t interactive_t::get(std::size_t index) const { +inline date_t interactive_t::get(std::size_t index) { return value_at(index).to_date(); } template <> -inline datetime_t interactive_t::get(std::size_t index) const { +inline datetime_t interactive_t::get(std::size_t index) { return value_at(index).to_datetime(); } +template <> +inline value_t::sequence_t& +interactive_t::get(std::size_t index) { + return value_at(index).as_sequence_lval(); +} +template <> +inline const value_t::sequence_t& +interactive_t::get(std::size_t index) { + return value_at(index).as_sequence(); +} template class in_context_t : public interactive_t