[ create a new paste ] login | about

Link: http://codepad.org/ym9XHixD    [ raw code | fork ]

C++, pasted on May 8:
// VC++2016

template <typename Range>
void test(const Range& r)
{
	auto begin = std::begin(r);
	auto end = std::end(r);
}


int main(void)
{
	{
		std::string str = "abc";
		test(str);	// OK
	}
	{
		char str[] = "abc";
		test(str);	// OK
	}
	{
		char* str = "abc";
		test(str);	// コンパイルエラー
	}
	{
		char* str = "abc";
		test(std::char_ptr_to_range(str));	// こういう関数は STL や BOOST に無いのか
	}
	{
		char* str = "abc";
		test(std::string(str));	// ただし、配列コピーを伴う方法は避けたい
	}

	return 0;
}


Create a new paste based on this one


Comments: