Here is the full example I came up with. I am using visual studio (tried 2010, 2012, and 2013). For completeness I am attaching a file with the polygon definition (test.txt).
#include "stdafx.h"
#include <string>
#include <fstream>
#include <streambuf>
#include <boost/geometry.hpp>
#include "boost/geometry/geometry.hpp"
#include <boost/geometry/extensions/gis/latlong/point_ll.hpp>
#include <boost/geometry/io/io.hpp>
namespace bg = boost::geometry;
using namespace std;
typedef bg::model::ll::point<> point;
typedef bg::model::polygon<point> polygon;
int _tmain(int argc, _TCHAR* argv[])
{
polygon poly;
std::string str;
std::ifstream t("c:\\temp\\test.txt");
t.seekg(0, std::ios::end);
str.reserve(t.tellg());
t.seekg(0, std::ios::beg);
str.assign((std::istreambuf_iterator<char>(t)),
std::istreambuf_iterator<char>());
bg::read_wkt(str, poly);
const bg::latitude<double> lat_out(37.69311);
const bg::longitude<double> lon_out(-122.13865);
point p_out(lat_out, lon_out);
bg::distance(poly, p_out); // This fails to compile for some reason.
return 0;
}