我正在编写一个类似于boost :: promote的促销模板别名,但是对于C++ 11.这样做的目的是在从varidic函数检索参数时避免警告.例如
template <typename T>
std::vector<T> MakeArgVectorV(int aArgCount, va_list aArgList)
{
std::vector<T> args;
while (aArgCount > 0)
{
args.push_back(static_cast<T>(va_arg(aArgList, Promote<T>)));
--aArgCount;
}
return args;
}
Run Code Online (Sandbox Code Playgroud)
Promote模板别名在可变参数的默认参数提升之后提升类型:1)小于int的整数被提升为int 2)float被提升为double
我的问题是可以提升标准C++枚举,但不提升C++ 11枚举类(编译器不会生成警告).我希望Promote使用常规枚举但忽略C++ 11枚举类.
如何区分我的Promote模板别名中的枚举类和枚举?
有谁知道如何通过距离搜索位置订购Facebook地点?请注意,我不想在我的客户端应用中订购结果.我希望Facebook服务器能够为我提供有序的结果以便于分页.我总是希望将后续查询中的位置追加到数组的末尾.
使用图形API查询似乎无法做到这一点,例如:
https://graph.facebook.com/search?q=coffee&type=place¢er=37.76,-122.427&distance=1000& ....因为没有办法告诉Facebook订购结果.最近的位置可能是返回结果列表中的最后一个.
我一直试图复制上面的查询,FQL但有一个问题,即Facebook位置表中的名称和描述字段不可索引.FQL如:
SELECT
page_id, name, display_subtext, description,
distance(latitude, longitude, "37.76", "-122.427"), checkin_count
FROM place
WHERE ((distance(latitude, longitude, "37.76", "-122.427") < 25000)
AND (strpos(lower(name), "coffee") >= 0
OR strpos(lower(description), "coffee") >= 0))
ORDER BY distance(latitude, longitude, "37.76", "-122.427") ASC
LIMIT 20 OFFSET 0
Run Code Online (Sandbox Code Playgroud)
这个问题是这些字段name和description不在地方台可转位.这意味着并非所有结果都由FQL返回,有许多缺失的结果.