因此,我们尝试弃用一些现有的类,并开始使用ObsoleteAttribute将它们标记为过时,以便它们将停止使用.使用具有使用Obsolete属性标记的类型的KnownType属性并导致编译器警告的事实是预期的.但是,在我们的项目中,我们将警告视为错误,因此忽略警告不是一种选择.是否有编译器指令来抑制此警告?
以下用法会导致编译器警告:
///ProductTemplateDataSet is marked with the Obsolete attribute
[KnownType(typeof(ProductTemplateDataSet))]
public class EntityCollectionBase : System.Data.DataSet
{
}
Run Code Online (Sandbox Code Playgroud)
编辑:我理解使用编译器指令来忽略错误,但是这个编译器警告没有数字.
升级到.NET Core 2.0(+ ASP.NET Core 2.0)后,我似乎无法获得输出的Trace级别日志信息.
事实上,如果我做一个dotnet new web项目并在Startup for Configure中添加以下代码,我没有得到任何跟踪或调试日志消息,但我得到两次信息和错误消息.注释掉.AddConsole()调用只会输出一次(信息和错误) - 建议默认情况下使用控制台提供程序自动配置它.请记住,这是一个"文件 - >新"项目经验,Program.cs除了我添加的内容之外,没有任何设置用于记录或配置.有谁见过的东西?或者我应该为它注册一个GitHub问题.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Microsoft.Extensions.Logging.LogLevel.Trace);
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
var logger = loggerFactory.CreateLogger("Blah");
logger.LogTrace("Hello world : Trace");
logger.LogDebug("Hello world : Debug");
logger.LogInformation("Hello world : Information");
logger.LogError("Hello world : Error");
await context.Response.WriteAsync("Hello World!");
});
}
Run Code Online (Sandbox Code Playgroud) 我做了一个示例项目,将文件读入缓冲区.当我使用tellg()函数时,它给我一个比读取函数实际读取的值更大的值.我认为有一个错误.
这是我的代码:
编辑:
void read_file (const char* name, int *size , char*& buffer)
{
ifstream file;
file.open(name,ios::in|ios::binary);
*size = 0;
if (file.is_open())
{
// get length of file
file.seekg(0,std::ios_base::end);
int length = *size = file.tellg();
file.seekg(0,std::ios_base::beg);
// allocate buffer in size of file
buffer = new char[length];
// read
file.read(buffer,length);
cout << file.gcount() << endl;
}
file.close();
}
Run Code Online (Sandbox Code Playgroud)
主要:
void main()
{
int size = 0;
char* buffer = NULL;
read_file("File.txt",&size,buffer);
for (int i = 0; i < size; i++) …Run Code Online (Sandbox Code Playgroud) 在我的课上,我有像这样的私有变量和属性.
private string _itemCOde=string.Empty;
private string _itemName=string.Empty;
public string ItemCode
{
get { return _itemCode; }
set { _itemCode = value == null ? value : value.Trim();}
}
public string ItemName
{
get { return _itemName; }
set { _itemName = value == null ? value : value.Trim();}
}
Run Code Online (Sandbox Code Playgroud)
根据这个属性,我在从sql表中选择数据后创建Item对象.
现在,如果数据库表被更改并添加一个名为cost的新列,那么我必须向该类添加另一个属性.在不向类添加新属性的情况下,可以根据表字段动态声明属性.
我实现了此功能,但仍然出现以下错误,我无法弄清原因。
/usr/include/c++/4.8/bits/stl_algo.h:6325: error: no match for call to '(Farm::killHeaviestAnimalOnFarm()::__lambda0) (Animal*&, Animal*&)' if (__comp(*__result, *__first)) ^
Run Code Online (Sandbox Code Playgroud)
我在互联网上搜索了一些示例,但看不到我和我之间有什么区别。
我的.cpp文件具有以下killHeaviestAnimalOnFarm
Animal *Farm::killHeaviestAnimalOnFarm()
{
auto minmax_widths = std::max_element(animals.begin(), animals.end(),
[] (Animal const& lhs, Animal const& rhs) {
return lhs.getWeight() < rhs.getWeight();
});
}
Run Code Online (Sandbox Code Playgroud) 我在Windows 10下使用MSVC2013 64位编译器.
根据:
std::cout << arma::arma_version::as_string() << std::endl;
Run Code Online (Sandbox Code Playgroud)
我有Armadillio库的6.100.1版(Midnight Blue).
例如,我启用了C++ 11
auto il = { 10, 20, 30 };
for(auto ele : il)
cout<<ele<<endl;
Run Code Online (Sandbox Code Playgroud)
工作中.还正确添加了库,运行以下代码:
vec v;
v<<10<<20<<30;
cout<<v;
Run Code Online (Sandbox Code Playgroud)
但是尝试使用Armadillio的初始化列表失败了.
vec v = { 1.0, 2.0, 3.0 };
Run Code Online (Sandbox Code Playgroud)
导致编译错误:
错误:C2440:'初始化':无法从'initializer-list'转换为'arma :: Col'没有构造函数可以采用源类型,或者构造函数重载解析是模糊的
我想在我的多线程中手动添加一些带有名称的类别链接.我试过这个(以ID20为例)
<?php $category = Mage::getModel('catalog/category')->load(20); ?>
<a href="<?php echo $category->getUrl(); ?>"><?php echo $category->getName();?></a>
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我不确定这是不是一个好主意,有很多加载只是为了获取URL.
我也试过用翻译代替:
<a href="<?php echo $this->__('URL-Language1') ?>"><?php echo $this->__('CatName-Language1') ?></a>
Run Code Online (Sandbox Code Playgroud)
在Locale csv中进行翻译.
这也有效,但实现这一目标的"正确方法"是什么?这感觉就像一个解决方法.
我正在尝试制作一个 php 套接字服务器,我发现了两个屏蔽和取消屏蔽文本消息(框架)的函数。我想我不清楚它是如何工作的。这是功能:
//encode message for transfer to client
function mask($text)
{
$b1 = 0x80 | (0x1 & 0x0f);
$length = strlen($text);
if ($length <= 125)
$header = pack('CC', $b1, $length);
elseif ($length > 125 && $length < 65536)
$header = pack('CCn', $b1, 126, $length);
elseif ($length >= 65536)
$header = pack('CCNN', $b1, 127, $length);
return $header . $text;
}
//unmask incoming framed message
function unmask($text)
{
$length = ord($text[1]) & 127;
if ($length == 126) {
$masks = substr($text, …Run Code Online (Sandbox Code Playgroud) 我有一个类型为A的对象列表,它可能包含从A派生的任意数量的类的实例.我在列表的每个成员上调用一个函数,并希望调用最派生类的函数.但是,调用基类的功能.我怎样才能得到使用派生程度最高的类的情况?
以下代码说明了我的问题.代码输出"In a"但我希望它输出"In b".
#include <iostream>
class A {
public:
virtual void func()
{
std::cout << "In A" << std::endl;
}
};
class B : public A {
public:
virtual void func()
{
std::cout << "In B" << std::endl;
}
};
int main()
{
A a = B();
a.func();
return 0;
}
Run Code Online (Sandbox Code Playgroud)