我已经尝试了VC ++中的模板变量(此时安装了所有最新的更新)并且编译并运行了所有内容(它表示item
没有被使用,嗯,4级上的合法警告)!唯一不好的是 IntelliSense 抱怨模板变量。
考虑以下代码:
#include <iostream>
#include <iomanip>
struct Whatever
{};
struct Bottle
{};
template <typename T>
constexpr bool is_bottle = false;
template <>
constexpr bool is_bottle<Bottle> = true;
template <typename Item>
void use(Item item)
{
std::cout << std::boolalpha;
std::cout << is_bottle <Item> << '\n';
}
int main()
{
use(Whatever{});
use(Bottle{});
}
对于Bottle
IntelliSense的专业化抱怨
模板变量的显式特化必须先于它的第一次使用()
(它也有括号)。
问题:一切都是他们的方式吗?我的意思是模板变量工作,Intellisense抱怨它们。