All pastes #926036 Raw Edit

int-char promotion?!

public text v1 · immutable
·published 2008-03-03 14:48 UTC
rendered paste body

	class String {
	public:
		operator const char*() const;

		String(char);
	private:
		friend String operator+ (const String& str1, const String& str2);
		friend String operator+ (const String& str1, const char* str2);
		friend String operator+ (const char* str1, const String& str2);
	};
	void testPlusRegOfft ()
	{
 		String inString;

		regmatch_t pm[2];

		strlen(inString + pm[1].rm_so); // typedef int regoff_t
//

GoStringTest.cpp: In member function `void GoStringTest::testPlusRegOfft()':
GoStringTest.cpp:53: no matching function for call to `GoStringTest::String::
   String()'
GoStringTest.cpp:40: candidates are: GoStringTest::String::String(const 
   GoStringTest::String&)
GoStringTest.cpp:44:                 GoStringTest::String::String(char)
GoStringTest.cpp:58: ambiguous overload for `GoStringTest::String& + regoff_t&' 
   operator
GoStringTest.cpp:58: candidates are: operator+(const char*, int) <built-in>
GoStringTest.cpp:46:                 GoStringTest::String operator+(const 
   GoStringTest::String&, const GoStringTest::String&)
GoStringTest.cpp:47:                 GoStringTest::String operator+(const 
   GoStringTest::String&, const char*) <near match>
GoStringTest.cpp:48:                 GoStringTest::String operator+(const 
   char*, const GoStringTest::String&)
GoStringTest.cpp:48:                 GoStringTest::String operator+(const 
   char*, const GoStringTest::String&)
GoStringTest.cpp:47:                 GoStringTest::String operator+(const 
   GoStringTest::String&, const char*) <near match>
GoStringTest.cpp:46:                 GoStringTest::String operator+(const 
   GoStringTest::String&, const GoStringTest::String&)



	}

// what the heck?!