From 0ca042cf890e6daf4f7851b4f2603d00f1e63a38 Mon Sep 17 00:00:00 2001
From: Adam Wardynski <award@.(win7-laptop)>
Date: Sat, 4 Dec 2010 11:52:20 +0100
Subject: [PATCH] Use DefaultFunction in RelativePosition - since the default
 value for Position is Nowhere now. Also, remove reduntant header and change
 stream to ostream in to_strings

---
 libwccl/ops/functions/position/relativeposition.cpp | 7 +++----
 libwccl/ops/functions/position/relativeposition.h   | 1 -
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/libwccl/ops/functions/position/relativeposition.cpp b/libwccl/ops/functions/position/relativeposition.cpp
index a2e98d2..c9cf64f 100644
--- a/libwccl/ops/functions/position/relativeposition.cpp
+++ b/libwccl/ops/functions/position/relativeposition.cpp
@@ -7,10 +7,9 @@ namespace Wccl {
 RelativePosition::BaseRetValPtr RelativePosition::apply_internal(
 	const FunExecContext &context) const
 {
-	static const Constant<Position> nowhere((Position(Position::Nowhere)));
 	const RetValPtr& orig_pos = pos_expr_->apply(context);
 	if(orig_pos->get_value() == Position::Nowhere) {
-		return nowhere.apply(context);
+		return detail::DefaultFunction<Position>()->apply(context);
 	}
 	const SentenceContext& sc = context.sentence_context();
 	return RetValPtr(new Position(offset_ + sc.get_rel_position(*orig_pos)));
@@ -18,7 +17,7 @@ RelativePosition::BaseRetValPtr RelativePosition::apply_internal(
 
 std::string RelativePosition::to_string(const Corpus2::Tagset &tagset) const
 {
-	std::stringstream ss;
+	std::ostringstream ss;
 	ss << pos_expr_->to_string(tagset);
 	if(offset_ >= 0) {
 		ss << " + " << offset_;
@@ -30,7 +29,7 @@ std::string RelativePosition::to_string(const Corpus2::Tagset &tagset) const
 
 std::string RelativePosition::to_raw_string() const
 {
-	std::stringstream ss;
+	std::ostringstream ss;
 	ss << pos_expr_->to_raw_string();
 	if(offset_ >= 0) {
 		ss << " + " << offset_;
diff --git a/libwccl/ops/functions/position/relativeposition.h b/libwccl/ops/functions/position/relativeposition.h
index 9324d42..a29c2d0 100644
--- a/libwccl/ops/functions/position/relativeposition.h
+++ b/libwccl/ops/functions/position/relativeposition.h
@@ -2,7 +2,6 @@
 #define LIBWCCL_OPS_FUNCTIONS_POSITION_RELATIVEPOSITION_H
 
 #include <libwccl/ops/function.h>
-#include <libwccl/ops/formatters.h>
 #include <libwccl/values/position.h>
 
 namespace Wccl {
-- 
GitLab