Как вы используете CAtlStringW с расширенным форматом?
Я попробовал это:
#include <iostream>
#include <boost\format.hpp>
#include <atlstr.h>
std::ostream& operator<<(std::ostream& os, const ATL::CAtlStringW& string)
{
return os << string.GetString();
}
int _tmain(int argc, _TCHAR* argv[])
{
CAtlStringW world = L"world";
boost::wformat formatter(L"hello %s");
formatter % world;
std::wstring formatted = formatter.str();
return 0;
}
и отформатированный закончился как "привет 004B54D8", но я хотел бы, чтобы это был "привет мир". Я пробовал некоторые варианты, такие как определение оператора<< в пространствах имен. Что мне не хватает? Оператор << не вызывается.
Благодарю.
Документация по расширенному форматированию содержит следующий пример для форматирования пользовательских типов: http://www.boost.org/doc/libs/1_49_0/libs/format/example/sample_userType.cpp
1 ответ
Doh.
Я пропустил 'W's:
std::wostream& operator<<(std::wostream& os, const ATL::CAtlStringW& string)
{
return os << string.GetString();
}