| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | #include "gtest/gtest.h"
#include <iostream>
#include <memory>
 
template<typename T>
class A
{
public:
	virtual float a() = 0;
};
 
class B : public A<float>
{
public:
	float a()
	{
		return 3.0f;
	};
};
 
std::unique_ptr<A<float>> use()
{
	std::unique_ptr<B> res = std::make_unique<B>();
 
	return res;
}
 
 
TEST(scratch, first)
{
	auto c = use();
 
	EXPECT_FLOAT_EQ((*c).a(), 3.0f);
} | 
 L'analyseur syntaxique sort cette erreur au niveaux du return de la fonction use :
	
	no suitable user-defined conversion from "std::unique_ptr<B, std::default_delete<B>>" to "std::unique_ptr<A<float>, std::default_delete<A<float>>>" exists
 Pourtant la compilation se déroule sans problème . Je compile sous vs2015 update3.
. Je compile sous vs2015 update3.
						
					
Partager